0

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;

そして、それはうまくいきません、誰かが私を助けることができますか? ありがとうございました。

4

0 に答える 0