关于TMediaPlayer声音控制开关(200分)

  • 主题发起人 主题发起人 freebird
  • 开始时间 开始时间
F

freebird

Unregistered / Unconfirmed
GUEST, unregistred user!
拉一拉:
怎样控制TMediaPlayer声音的开关(最好能在关闭前先得到该文件是否
有声音),而其他的TMediaPlayer可正常播放声音。 也就是当多个TMediaPlayer在使用时声音的指定控制。

查看后也不知道mciSendCommand,WaveOutOpen,WaveOutClose到底
是怎样同TMediaPlayer联系起来的,好象通过TMediaPlay的DeviceID
不能连接控制。
 
MMRESULT auxSetVolume(

UINT uDeviceID,
DWORD dwVolume
);
 
Another_eYes:
不行,我已用过
mm:=MidiOutSetVolume(MediaPlayer1.DeviceID,$0000);
mm:=waveOutSetVolume(MediaPlayer1.DeviceID,$0000);
mm:=AuxSetVolume(MediaPlayer1.DeviceID,$0000);
还有WaveOutClose(MediaPlayer1.DeviceID)都不能关闭该
TMediaPlay正在播放的声音。

另外说明:我只是要关闭指定的TMediaPlayer,而其他的
TMediaPlayer还能正常工作,也不想用其他的控件。
 
用m$的mediaplayer吧
mediaplayer.mute;

 
这个问题是不是很麻烦,在TMediaPlayer中难道不能关闭或打开声音,
我想肯定是可以控制,但看了MPlayer.pas和MMSystem.pas后感觉还定要用
MCI高级命令才行,可我对MCI太陌生了,折腾几天,就是没能搞定。

但就我想做到的功能来看,应该是很简单的要求,当有两个TMediaPlayer
都在播放(一个.wav,一个可能有声音的.avi)我总要控制哪个能放,能个
暂时就不能放吧(声音不放,图片要放),可是似乎Inprise就没有提供处理
的方法。

到最后还是恳请各位给想一办法,把事给了啦,先谢谢大家!
 
对mci陌生就用microsoft multimedia control 啦。
 
找一找media player组件的哪个属性是和音频输出有关的,然后释放它,
也就是说不让它有输出的路径,不知道行不行?
 
我知道:
用waveOutSetVolume();
waveOutSetVolume(hwo: HWAVEOUT;
dwVolume:DWORD)
dwVolume --- 音量大小 HWORD---Left volume
LWORD--Right volume
 
mciSendCommand能用TMediaPlayer的DeviceID,但用mciSendCommand的命令后,
再用TMediaPlayer的命令就会出错:'Access Violation',不知是为什么,难道
是Handle改变了吗?
 
audio 控件有这个功能,你可以试一试
 
一个MEDIAPLAYER 可以在一个文件播放完毕之后检查是否文件播放玩,而后可以作其他的处理
每个文件播放完毕后都会有一个报告产生利用次报告可以判断是否一个文件一播放完几产生
一个报告,监测完后可以用奇属性在播放另一个文件DELPHI的功能强大为什么偏偏牵扯上WINDOWS
API ?
如果对你有一处请给我一个EMAIL


 
别人说的好像是控制银两大小的问题
 
先定义常量
CONST
MCI_SETAUDIO=$873;
MCI_SETVIDEO=$0876;
定义结构
type MCI_DGV_SETAUDIO_PARMS=record
dwCallback:DWORD;
dwItem:DWORD;
dwValue:DWORD;
dwOver:DWORD;
lpstrAlgorithm:PChar;
lpstrQuality:PChar;
end

procedure wavechange;
var
s: MCI_DGV_SETAUDIO_PARMS
begin

//关闭声音 如有多个MCI设备,则为midiaplayer2.deviceid......
mciSendCommand(MediaPlayer1.DeviceID,MCI_SETAUDIO, MCI_SET_OFF ,integer(@s));
//打开声音
mciSendCommand(MediaPlayer1.DeviceID,MCI_SETAUDIO, MCI_SET_ON ,integer(@s));
end;

我试了,没有一点错

 
多人接受答案了。
 

Similar threads

回复
0
查看
848
不得闲
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部