mediaplayer控件设置endpos以后就不能恢复播放了?????(200分)

  • 主题发起人 主题发起人 caowei
  • 开始时间 开始时间
C

caowei

Unregistered / Unconfirmed
GUEST, unregistred user!
奇怪奇怪真奇怪......
不设置endpos属性的时候,mediaplayer控件上面的“暂停”按钮很正常,
按一下,暂停;再按一下,恢复播放。
但是,一旦设置了endpos属性,就只能暂停不能恢复了!
什么原因啊????
 
没有人知道吗?
帮我测试一下也行啊...
 
测过了!
没出现此问题??
 
再从头检查一下吧!
 
我把源程序放在 www.avsuper.com/mplay.zip
注意前面不要写"http://"
程序总共就4行,先在edit1里面输入一个文件名,然后点"set endpos"按钮,
再播放、暂停、暂停,在我这里,如果没有设置endpos,则两次暂停后会重新开始。
而一旦设置了endpos,就自己停了!真奇怪啊........
 
上面的程序 //播放,暂停,暂停// 应该第一次点暂停后,控件的pause为灰色,
所以不会有连续的第二次暂停。。

若另加一暂停按钮(pause)。在播放中。据你定义的endpos=600帧前不会出现你所说的问题,
当播完600帧后...
看一下:控件pause的执行过程
if not MCIOpened then
Raise EMCIDeviceError.CreateRes(@sNotOpenErr);
if Mode = mpPlaying then
PauseOnly
else

if Mode = mpPaused then
Resume;
此时mode不处于mpPaused状态,所以无论你按多少次暂停,也不会Resume。。


 
谢谢回答。
出现问题是在600帧播放完成之前。
过程是这样的:
1、先打开文件
2、设置endpos
3、播放。
4、过2秒左右,按暂停。这时会暂停。
5、再次按暂停,应该恢复播放,但是没有恢复。
如果去掉第二步,则是正常的!第二次按暂停可以恢复播放!
我跟踪了mplay.pas,发现第二次按暂停的时候进入了resume函数,也调用了
mciSendCommand( FDeviceID, mci_Resume, FFlags, Longint(@GenParm));
但是它就是不工作....真是郁闷啊......
 
谁帮我想到办法了?
 
题无解,重新play,另想点办法,第一次Pause,第二次play,ok
 
该构件3年前用过,最近一直没用,估计不会,看一下帮助
 
第一次pause,第二次play,一样的结果......
 
var
mypause:boolean;//设为全局变量
begin

if mypause then
mediaplayer1.pause
else

mediaplayer1.play;
not(mypause);
end;

 
没什么区别吧...一样的效果...
 

Similar threads

回复
0
查看
804
不得闲
D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
后退
顶部