首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 偵測音效卡是否存在:auxGetNumDevs 輕鬆判斷

     編輯:Delphi

前言

多媒體播放器、語音辨識、錄音軟體啟動時,預先偵測音效卡可避免後續 API 呼叫失敗,提升使用者體驗。

核心程式碼

uses MMSystem;

procedure TForm1.FormCreate(Sender: TObject);
var
  NumDevs: Integer;
begin
  NumDevs := auxGetNumDevs;  { 回傳輔助音訊裝置數量 }
  if NumDevs <= 0 then
    Label1.Caption := '系統未偵測到音效卡'
  else
    Label1.Caption := Format('偵測到 %d 個輔助音訊裝置', [NumDevs]);
end;

API 細節

  • auxGetNumDevs:回傳 輔助 (AUX) 音訊裝置 數量(如 CD 音訊、線路輸入、合成器)。若回傳 0,通常代表無音效卡或驅動未正確安裝。
  • 更精確偵測播放/錄製裝置:waveOutGetNumDevs (播放)、waveInGetNumDevs (錄音)。
  • 取得裝置詳細資訊:auxGetDevCaps/waveOutGetDevCaps 填入 TAuxCaps/TWaveOutCaps 結構,可取得製造商、產品名、支援格式等。

進階:列舉所有音訊裝置

procedure ListAudioDevices;
var
  i: Integer;
  Caps: TWaveOutCaps;
begin
  for i := 0 to waveOutGetNumDevs - 1 do
  begin
    if waveOutGetDevCaps(i, @Caps, SizeOf(Caps)) = MMSYSERR_NOERROR then
      Memo1.Lines.Add(Format('播放裝置 %d: %s (支援格式: %.4x)', [i, Caps.szPname, Caps.dwFormats]));
  end;
end;

結語

auxGetNumDevs 提供最輕量的音效卡存在性檢查,一行代碼即可完成。結合 waveOutGetNumDevs/waveInGetNumDevs 可全面掌握系統音訊輸入/輸出能力,為多媒體應用奠定穩健基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved