在DELPHI里怎么实现~vcd碟机~里的声道。(*.dat)
两个喇叭都有音乐,无人声唱。(还有其它声道等等)

解决方案 »

  1.   

    那为大哥有这方面的代码给小弟发一个。
    [email protected]
      

  2.   

    无聊,又是这样的问题。
    如果你的音源本身就是分离的,就是伴唱是个独立的声道,象卡拉ok那样的,那么你简单地屏蔽这个声道就可以了。
    如果你的音源中,伴唱是混合在音乐中的,象大部分唱片、mp3歌曲那样,那么你可以死心了。现在的技术办不到。
    当然,有些人会说某某软件可以,但那是骗你的,你听了那样的效果,耳朵会提抗议的。
      

  3.   

    你说的对,我指的是VCD碟,当然就是分离了的。就是卡拉OK。
      

  4.   

    我想把家里的电脑+电视,实现卡拉OK,电影,MP3,照片。暂时只实现这些功能。
      

  5.   

    这样的问题回答了不下十几边了http://search.csdn.net/expert/topic/53/5301/2002/4/20/662797.htm
    其实你用用搜索不就OK了
    -------------------------------------------------------我做了一个KTV卡啦OK点播系统时也遇到了这个问题,要用这段程序你就只能用Borland的提供的那个MediaPlayer控件,不能用Windows的那个MediaPlayer OCX控件,我怎么试也没有效果 :( 我看过Borland的那个MediaPlayer控件的源码是封装的MCI API……算了看源码吧,我的第一个版本就是这样解决的 ^^首先 User mmSystem 单元定义: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;                   //++type //音量控制  MCI_DGV_SETAUDIO_PARMS=record    dwCallback:DWORD;    dwItem:DWORD;    dwValue:DWORD;    dwOver:DWORD;    lpstrAlgorithm:PChar;    lpstrQuality:PChar;end;//*************************************左右声道控制*****************************************////  L -- 左声道 R -- 右声道 C -- 立体声//*****************************************************************************************//procedure 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);      //ShowMessage(buf);    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;    //下面的MCI_DGV_SETAUDIO_VALUE 一定不能少    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);      //ShowMessage(buf);    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;
      

  6.   

    我买了个遥控的,要结合遥控用,用MediaPlayer比较麻烦,因为播放格式。用windowsMediaPlayer就可以解决所有播放问题,所以还是用windowsMediaPlayer做的好