houling 请进(100分)

  • 主题发起人 主题发起人 smallfox
  • 开始时间 开始时间
S

smallfox

Unregistered / Unconfirmed
GUEST, unregistred user!
houling:
您好!
您能不能发一份关于总音量控制的代码给我(MCI)
谢谢!
 
我用的是神龙DVD解压卡,waveoutsetvolume和auxsetvolume都不行,请houling多多指教
哪位高手如果有代码的话,请不要吝啬!谢谢各位大侠!!!

 
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_STREAM=$4003;
MCI_DGV_SETAUDIO_VOLUME=$4002;
MCI_DGV_SETVIDEO_SOURCE=$4009;
MCI_DGV_SETVIDEO_SRC_NTSC=$4000;
MCI_DGV_SETVIDEO_SRC_SVIDEO=4002;
MCI_DGV_SETVIDEO_SRC_PAL=4003;
MCI_DGV_SETAUDIO_LEFT=$200000;
MCI_DGV_SETAUDIO_RIGHT=$400000;
MAX_VOLUME=1000;
MIN_VOLUME=0;
VOLUME_STEP=100;
type MCI_DGV_SETAUDIO_PARMS=record
dwCallback:DWORD;
dwItem:DWORD;
dwValue:DWORD;
dwOver:DWORD;
lpstrAlgorithm:PChar;
lpstrQuality:PChar;
end

procedure tplay_form.volumechange(f:boolean);
var
s: MCI_DGV_SETAUDIO_PARMS
begin

mciSendCommand(MediaPlayer1.DeviceID,MCI_SETAUDIO, MCI_SET_OFF ,integer(@s));
if f then

volume_value:=volume_value+VOLUME_STEP
else

volume_value:=volume_value-VOLUME_STEP;
if volume_value>MAX_VOLUME then

volume_value:=MAX_VOLUME;
if volume_value<MIN_VOLUME then

volume_value:=MIN_VOLUME;
savevolume:=volume_value;
s.dwValue:=savevolume;
s.dwItem:=MCI_DGV_SETAUDIO_VOLUME;
mciSendCommand(MediaPlayer1.DeviceID,MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM ,integer(@s));
mciSendCommand(MediaPlayer1.DeviceID,MCI_SETAUDIO, MCI_SET_ON ,integer(@s));
end;



 
接受答案了.
 
houling 你好
我用了你的切换声道的代码,当歌曲文件的质量比较好的话就可以通过
但当歌曲的质量比较差的话就会蓝屏,请问问题出在哪里
不是DVD的,DVD的声道切换正常,我要的是VCD的
 
您好 houling
您能告诉我怎样用神龙API来控制DVD的声道,VCD的我已经解决了
 
if FStreamID <> 0 then

FMPGroup(FStreamID, FMPF_SELECT or FMPF_INDEX, Value + 1);
 
后退
顶部