各位高手,关于左右声道的问题!急!急!急! 是DSPack这个控件 (100分)

J

jeven

Unregistered / Unconfirmed
GUEST, unregistred user!
求助:各位高手,

我想开发一个多媒体软件,但要左右声道象超级解霸一样放VCD的时候能够两个喇叭发声,
要有实例。我用的是DSPack这个控件。
急!急!急!
我的QQ:3219238


 
我正好以前做过,给你代码:
use mmSystem;
type TChannel=(cLeft,cRight,cBoth);
const
MCI_SETAUDIO= $873;
MCI_SETVIDEO=$0876;
MCI_DGV_SETAUDIO_SOURCE_LEFT=1;
MCI_DGV_SETAUDIO_SOURCE_STEREO=0;
MCI_DGV_SETAUDIO_SOURCE_RIGHT=2;
MCI_DGV_SETAUDIO_SOURCE=$4004;
MCI_DGV_SETAUDIO_VALUE=$01000000;
MCI_DGV_SETAUDIO_ITEM=$00800000;


type MCI_DGV_SETAUDIO_PARMS=record
dwCallback:DWORD;
dwItem:DWORD;
dwValue:DWORD;
dwOver:DWORD;
lpstrAlgorithm:pChar;
lpstrQuality:pChar;
end ;

procedure TForm1.Setchannel(Channel:TChannel);
var
S: MCI_DGV_SETAUDIO_PARMS ;
Err:integer;
Buf:array[0..100] of char;
begin

Err:=mciSendCommand(MediaPlayer1.DeviceID,MCI_SETAUDIO, MCI_SET_OFF ,integer(@s));
if(Err<>0)then

begin

mciGetErrorString(err,buf,sizeof(buf) );
ShowMessage('Set Audio Off Failed!');
ShowMessage(buf);
end;

Case Channel of
cLeft : S.dwValue:=MCI_DGV_SETAUDIO_SOURCE_LEFT;
cRight: S.dwValue:=MCI_DGV_SETAUDIO_SOURCE_RIGHT;
cBoth : S.dwValue:=MCI_DGV_SETAUDIO_SOURCE_STEREO;
end;

S.dwItem:=MCI_DGV_SETAUDIO_SOURCE;
Err:=mciSendCommand(MediaPlayer1.DeviceID,MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM ,integer(@s));
if(Err<>0)then

begin

mciGetErrorString(err,buf,sizeof(buf) );
ShowMessage('Set Channel Failed!');
ShowMessage(buf);
end;

Err:=mciSendCommand(MediaPlayer1.DeviceID,MCI_SETAUDIO, MCI_SET_ON ,integer(@s));
if(Err<>0)then

begin

mciGetErrorString(err,buf,sizeof(buf) );
ShowMessage('Set Audio On Failed!');
ShowMessage(buf);
end;

end;

 
多谢!我试试!
 
delphiland
怎么跟你联系啊!
 
在在线富翁中发消息吧
 
不是,
我用的是DSPack!
这个控件,从哪里找设备的ID?
 
不了解 DSPack 。
 
你有没有别的办法解决这个问题!
万分感谢!
有酬!!!
 
不知道设备ID,谁也没有办法。
 
delphiland:
在用directshow开发的程序中怎么换左右声道.
好象不能用多媒体函数.
 
风云再起
你也碰到同样的问题吗?
 
不会吧!
这个问题就这样了!
[:(]
还有没人回答啊!
这么多天了还没解决!
 
Mcisendstring("set left audio on")
 
多人接受答案了。
 
顶部