2 つのサウンドカードを搭載した PC を使用している場合、サウンドを再生するサウンドカードを選択するにはどうすればよいですか? 今私は使用しています:
procedure TForm_Principal.FormCreate(Sender: TObject);
var
DevOutCaps: TWaveOutCaps;
n, i:Integer;
s: String;
begin
Self.comboOut.Items.Clear;
n := waveOutGetNumDevs;
for i := 0 to n-1 do
begin
waveOutGetDevCaps(i, @DevOutCaps, SizeOf(DevOutCaps));
s := PChar(@DevOutCaps.szPname);
Self.comboOut.Items.Add(s);
end;
end;
その後:
procedure TForm_Principal.Button1Click(Sender: TObject);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(HInstance, 'Sound_Ringing', RT_RCDATA);
try
Res.Position := 0;
PlaySound(Res.Memory,
Self.comboOut.ItemIndex, SND_MEMORY or SND_ASYNC );
//SndPlaySound(Res.Memory, SND_MEMORY or SND_ASYNC or SND_LOOP);
finally
Res.Free;
end;
end;
そして、それはうまくいきません、誰かが私を助けることができますか? ありがとうございました。