如何修改,可以使这段代码实现多通道播放的功能?(200)

  • 主题发起人 主题发起人 菜鸟黄
  • 开始时间 开始时间

菜鸟黄

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TACMWaveOut.PlayBack(data:pointer;size:longint);
var Header:PWaveHdr;
memblock:pointer;
i:integer;
begin
if HWaveOut1 <>nil then
begin
header:=new(PWaveHdr);
memblock:=new(pointer);
getmem(memblock,size);
move(data^,memBlock^,size);
header.lpdata:=memBlock;
header.dwbufferlength:=size;
header.dwbytesrecorded:=size;
header.dwUser:=0;
header.dwflags:=0;
header.dwloops:=0;
i:=WaveOutPrepareHeader(HWaveOut1^,header,sizeof(TWaveHdr));
if i <> 0 then
showmessage('WaveOutPrepareHeader error');
i:=WaveOutWrite(HWaveOut1^,header,sizeof(TWaveHdr));
if i <> 0 then
showmessage('WaveOutWrite error');
end;

end;
 
你只有一个声卡,哪来的多通道?
 
我是想同时接收多个音频数据进行同时播放.
 
得进行混音。怎么做我也是不会。
 
只要是发送到喇叭的声音Windows都会播放,不必混音,我开始以为是发送到左右声道,另外最好两个线程以上,还有就是声卡要支持,有的声卡一个现成打开ACMOpen后,其他进程就不能打开使用了!
 
后退
顶部