我也在编写这方面的东西,我是用卡本身提供的SDK,希望共同研究。 一下是转载代码,你可以试试。 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;如果用卡的SDK,你是如何控制DVD的左右声道呢?VCD的我已经解决了,DVD我的思路是先选择轨道,然后再设置其左右声,不知道是否正确? 我的email: [email protected]
一下是转载代码,你可以试试。
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;如果用卡的SDK,你是如何控制DVD的左右声道呢?VCD的我已经解决了,DVD我的思路是先选择轨道,然后再设置其左右声,不知道是否正确?
我的email: [email protected]
DVD的我用以下方法:
const
DRV_USER = $4000;
FMP_GROUP= $08;
FMPF_SELECT=$0004;
FMPF_INDEX =$0020;SendDriverMessage(DrvID, DRV_USER+1, MAKELPARAM(MAKEWORD(Command,hMPEGStream),Flags), Value);
选择轨道index(1~3):
SendDriverMessage(DrvID, DRV_USER+1, MAKELPARAM(MAKEWORD(FMP_GROUP,hMPEGStream),FMPF_SELECT or FMPF_INDEX), index);你可以试试index值不同,输出的音效。
我想,不管用什么卡,应该都支持MCI的。所以以上的方法应该可以使用于所有遵循MCI标准的解压卡。
用卡的sdk用FMPGroup可以解决,是挺简单的。
用MCI我还没有去试,这几天卡被朋友拿走,不过我想应该是可以的?!
不过有个怪问题:FMPGroup返回的值老是 0xFFFFFFFF,其他事情忙完了,会有个彻底的了断。
来实现 VCD的我已经 实现了 就差DVD了 因为DVD 不是一个声道 而是用声轨来区分的
所以还望大家继续帮忙
我也在做点歌系统。(不用卡)
一起学习。
http://community.csdn.net/Expert/topic/3399/3399606.xml?temp=.6654474
在不用神龙卡的情况下播放DVD这点已经实现了 我现在想区分它的原伴唱问题
你能否帮助一下 给看看 先谢过了
skynew.ys168.com