检测AVI文件是否播放结束(100分)

  • 主题发起人 主题发起人 zhou_joy
  • 开始时间 开始时间
Z

zhou_joy

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在利用DELPHI中的mediaplay播放一些AVI文件,但不知道怎样测试,一个AVI文件播放结束.本人曾试过利用ONNOTIFY事件,很不稳定,时好时坏.
 
本人也是用ONNOTIFY事件编程实验的检测已播放的
长度是否等于文件长度,确定是否播放完
 
这很简单,当 mediaplayer1.position=mediaplayer1.length 时就是结束的时候。
 
不会吧,我的程序都是这样结束的,你可以参考以下:
procedure TfrmMain.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin

CanClose:=False;//不能结束程序
EndAVI;
//调用自制结束过程
end;


Procedure EndAVI 是调用并播放 程序结束的动画。
begin

......
end;


Mediaplayer 添加过程处理
procedure TfrmMain.MediaPlayNotify(Sender: TObject);
begin

if (MediaPlay.NotifyValue=nvSuccessful) then

begin

MediaPlay.Close;
Application.Terminate;
end;

end;

 
在开始播放时设置notify为True,然后在OnNotify中检测是否成功
就可以了
 
<font color="red">caowei</font>
不用设notify呀,我刚试了,open/play检测 notify都为false,但在播放结束时OnNotify都会被调用。
 
我再补充一点吧!
如果是用MEDIAPLAYER控件,除了可以用yardy的方法:
mediaplayer1.position=mediaplayer1.length,以及ONNOTIFY
事件以外还可以用:MEDIAPLAY。MODE这个属性来判别。
当然要用到TIMER控件。
 
接受答案了.
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
845
SUNSTONE的Delphi笔记
S
S
回复
0
查看
778
SUNSTONE的Delphi笔记
S
后退
顶部