主题:谁能帮我研究一下 mci_play.scx
琅拿度
[专家分:2820] 发布于 2008-07-10 17:55:00
附件是V9里面的范例,有帮助在里面。
不知道如何使用右声道、左声道 或 立体声道?
谢谢各位大虾?
最后更新于:2008-07-10 17:58:00
回复列表 (共5个回复)
沙发
cbl518 [专家分:57140] 发布于 2008-07-10 19:10:00
audio left off 关闭左声道的声音。
audio left on 启动左声道的声音。
板凳
cbl518 [专家分:57140] 发布于 2008-07-10 19:10:00
audio right off 关闭右声道的声音。
audio right on 启动右声道的声音。
3 楼
琅拿度 [专家分:2820] 发布于 2008-07-10 23:39:00
请问当关闭左声道时,是否两个喇叭同时发出右声道的声音?反之反然?
4 楼
琅拿度 [专家分:2820] 发布于 2008-07-10 23:44:00
cbl518先生:
可否将代码写在一按钮“click”上,顺序切换,左、右、立体声音3个,要求左右喇叭都要同时发声并平衡?
谢谢!
5 楼
琅拿度 [专家分:2820] 发布于 2008-07-14 23:14:00
audio left/right on/off 都未能试出,只试出关掉了所有。
这是网络找到的,VOD系统中的一段核心代码,不知道是什么语言干的?能否转为VFP?
Str值为:L/R/C
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;
MCI_DGV_SETAUDIO_VOLUME=$4002;
MAX_VOLUME=65535;
MIN_VOLUME=0;
procedure TFormMain.LRC(Str: String);
var
s: MCI_DGV_SETAUDIO_PARMS ;
err:integer;
buf:array[0..1000] of char;
begin
if MediaPlayer11.DeviceID>0 then
begin
err:=mciSendCommand(MediaPlayer11.DeviceID,MCI_SETAUDIO, MCI_SET_OFF ,integer(@s));
if(err<>0)then
begin
mciGetErrorString(err,buf,sizeof(buf) );
FormMain.MessageBoxShow('1',buf,2,True,10000);
end;
if Str='C' then
s.dwValue:=MCI_DGV_SETAUDIO_SOURCE_STEREO;
if Str='L' then
s.dwValue:=MCI_DGV_SETAUDIO_SOURCE_Left;
if Str='R' then
s.dwValue:=MCI_DGV_SETAUDIO_SOURCE_Right;
s.dwItem:=MCI_DGV_SETAUDIO_SOURCE;
err:=mciSendCommand(MediaPlayer11.DeviceID,MCI_SETAUDIO,MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM ,integer(@s));
if (err<>0) then
begin
mciGetErrorString(err,buf,sizeof(buf) );
FormMain.MessageBoxShow('1',buf,2,True,10000);
end;
err:=mciSendCommand(MediaPlayer11.DeviceID,MCI_SETAUDIO, MCI_SET_ON ,integer(@s));
if (err<>0) then
begin
mciGetErrorString(err,buf,sizeof(buf) );
FormMain.MessageBoxShow('1',buf,2,True,10000);
end;
end;
end;
我来回复