声道问题~~请进~~ 在DELPHI里怎么实现~vcd碟机~里的声道。(*.dat)两个喇叭都有音乐,无人声唱。(还有其它声道等等) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那为大哥有这方面的代码给小弟发一个。[email protected] 无聊,又是这样的问题。如果你的音源本身就是分离的,就是伴唱是个独立的声道,象卡拉ok那样的,那么你简单地屏蔽这个声道就可以了。如果你的音源中,伴唱是混合在音乐中的,象大部分唱片、mp3歌曲那样,那么你可以死心了。现在的技术办不到。当然,有些人会说某某软件可以,但那是骗你的,你听了那样的效果,耳朵会提抗议的。 你说的对,我指的是VCD碟,当然就是分离了的。就是卡拉OK。 我想把家里的电脑+电视,实现卡拉OK,电影,MP3,照片。暂时只实现这些功能。 这样的问题回答了不下十几边了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; 我买了个遥控的,要结合遥控用,用MediaPlayer比较麻烦,因为播放格式。用windowsMediaPlayer就可以解决所有播放问题,所以还是用windowsMediaPlayer做的好 怎么屏蔽 ALT+TAB 键呢 ? delphi是否有内部类? frxreport的frxdbdataset问题???急 dxDBGrid中的列如何与从数据库中查出的数据的列一一对应上? 怎样去掉Database Login对话框 谁能告诉我TDWindow和TDButton是哪类控件中的类,100分相送 組件編寫的問題。 帮忙看看语法错误 Delphi连接Access 天,为什么,难道QUERY控件的BUG这么大吗,那BORLAND可就真的不怎么样了 WISE打包工具如何用? 用ServerSocket和ClientSocket能作Internet应用程序吗
[email protected]
如果你的音源本身就是分离的,就是伴唱是个独立的声道,象卡拉ok那样的,那么你简单地屏蔽这个声道就可以了。
如果你的音源中,伴唱是混合在音乐中的,象大部分唱片、mp3歌曲那样,那么你可以死心了。现在的技术办不到。
当然,有些人会说某某软件可以,但那是骗你的,你听了那样的效果,耳朵会提抗议的。
其实你用用搜索不就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;