如何实现DVD左右声道的控制  但是不能用神龙卡  我想用delphi 代码来实现它的功能 各位大虾能否帮忙
急 急

解决方案 »

  1.   

    dvd的声道切换比较难搞,因为它不止两个声道啊。关注!!
      

  2.   

    大家帮帮忙吧 这个问题已经困饶了我好些天了 我也知道DVD 不只是声道的问题 还有很多希望指点
      

  3.   

    我也在编写这方面的东西,我是用卡本身提供的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]
      

  4.   

    我用的是神龙卡,此问题我接本已经解决,我现在可以实现VCD和DVD两种格式的声道切换。只是还没有去弄清楚具体每个声道置的内容。
    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标准的解压卡。
      

  5.   

    tolynmison(菻梓)  LRC(Str: String); ?? hehe^^ 这个代码是我的写地....用卡的SDK很简单,但直接用 MCI 支持吗??!
      

  6.   

    to CDSoftwareWj(95927):很荣幸看到你冒出来 :)
    用卡的sdk用FMPGroup可以解决,是挺简单的。
    用MCI我还没有去试,这几天卡被朋友拿走,不过我想应该是可以的?!
    不过有个怪问题:FMPGroup返回的值老是 0xFFFFFFFF,其他事情忙完了,会有个彻底的了断。
      

  7.   

    谢谢大家的帮忙  但是我还是没有解决呀  你们都在讨论用神龙卡  而我们要求不用那个卡
    来实现 VCD的我已经 实现了 就差DVD了 因为DVD  不是一个声道  而是用声轨来区分的
    所以还望大家继续帮忙
      

  8.   

    能否将VCD的声道控制贴上,
    我也在做点歌系统。(不用卡)
    一起学习。
    http://community.csdn.net/Expert/topic/3399/3399606.xml?temp=.6654474
      

  9.   

    to CDSoftwareWj(95927):老兄,听说你是这方面的高手给点意见吧  我想
    在不用神龙卡的情况下播放DVD这点已经实现了 我现在想区分它的原伴唱问题
    你能否帮助一下  给看看  先谢过了
      

  10.   

    看一看我的网站
    skynew.ys168.com