如何设置Delphi的默认音频输入?

时间:2014-02-21 13:16:59

标签: delphi default microphone

我想知道如何通过Delphi设置我的默认音频捕获设备(麦克风)。

我正在尝试使用mmsystem api的功能,遵循我的代码

procedure TForm1.Button1Click(Sender: TObject);
var
 DevOutCaps: TWaveOutCaps;
 DevInCaps: TWaveInCaps;
 n, i: Integer;
 s: String;
begin
n := waveInGetNumDevs;
for i := 0 to n-1 do
  begin
    waveInGetDevCaps(i, @DevInCaps, SizeOf(DevInCaps));
    s := PChar(@DevInCaps.szPname);
    ListBox1.Items.Add(s);
  end;
end;


procedure TForm1.Button2Click(Sender: TObject);
var
 Ndev : Integer;
 Adev : Integer;
begin
Ndev := AudioInDeviceNameToDeviceID(ListBox1.Items.Strings[ListBox1.ItemIndex]);
Adev := GetWaveInDevice;
ShowMessage( IntToStr(Adev) );
ShowMessage(ListBox1.Items.Strings[ListBox1.ItemIndex]);
ShowMessage( IntToStr(Ndev) );
if waveInMessage(HWAVEIN(WAVE_MAPPER), DRVM_MAPPER_PREFERRED_SET, Adev, Ndev) = MMSYSERR_NOTSUPPORTED then
   begin
   MessageDlg('NOT SUPPORTED', mtInformation, [mbOK], 0);
   end;

最好没有第三方组件。 谢谢

1 个答案:

答案 0 :(得分:0)

WinMM API似乎是要走的路,使用DRVM_MAPPER_PREFERRED_SET消息显然,虽然在Win32下未记录,但它仍然受支持: -

WinMM API