在编写播放VCD时,怎样控制左右声道,使之有原音或卡拉OK方式(100分)

  • 主题发起人 主题发起人 lpk
  • 开始时间 开始时间
L

lpk

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用多媒体MCI字符串指令编写播放VCD时,已经使用了set MPG left on
和set MPG right on以及 set MPG all on来设置左右声道和全声道,但有
些VCD格式文件切不受控制,比如:要原音方式就不行.
 
呵呵,此问题多次被问,就是没有好的解决……
 
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=192655
以前已经讨论多次了。
 
谢谢各位帮我找到答案,我试过用MCI指令信息是可以控制,但我用发串字符信息方式,却不知如何是好,请高手指教
 
我知道:
用waveOutSetVolume();
waveOutSetVolume(hwo: HWAVEOUT;
dwVolume:DWORD)
dwVolume --- 音量大小 HWORD---Left volume
LWORD--Right volume
卡拉OK歌曲,其实是用左(或右)声道放原声,另一个声道放伴奏。
用WAVEOUTSETVOLUME函数就可以分别控制左右声道,当然关掉其中
一个声道不就可以实现你的要求了!
 
试试这样行不行?
var
SetParm: TMCI_SET_PARMS;
Flag: LongInt;

begin

Flags := mci_Notify;
SetParm.dwCallback := Player.Handle;
//左声道:
mciSendCommand(MediaPlayer1.DevieceID, MCI_SET+MCI_SET_AUDIO_LEFT,
Flag,LongInt(@SetParm));
//右声道:
mciSendCommand(MCIDEVICEID wDeviceID, MCI_SET+MCI_SET_AUDIO_RIGHT,
Flag,LongInt(@SetParm));
 
这里介绍一个软件<a href="http://go.163.com/~hbliu008/mysoft/jpvcd.exe">http://go.163.com/~hbliu008/mysoft/jpvcd.exe</a>
 
关注一下!
我有几个关于音量控制的控件,但都没办法做到像超级解霸那样控制左、右声道的,谁有
请给我寄一个,先谢谢!
xxz007@yeah.net
 
学习一下。
 
var
Player: TMediaPlayer;
左:
WaveOutSetVolume(Player.DeviceID-1,$ffff0000);
右:
WaveOutSetVolume(Player.DeviceID-1,$0000ffff);
静:
WaveOutSetVolume(Player.DeviceID-1,$ffff0000);
效果与操作系统有关,不知怎么搞的,在我的机上(Win98第一版)无效,但在别人的
第二版或NT4上却又放得爽爽的。

 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
851
DelphiTeacher的专栏
D
后退
顶部