被大家忽略的一个Mediaplayer播放AVI动画的大问题!!!!!???(200分)

  • 主题发起人 主题发起人 deem
  • 开始时间 开始时间
D

deem

Unregistered / Unconfirmed
GUEST, unregistred user!
使用Mediaplayer播放AVI动画。在Form1上放一个Mediaplayer.
将Mediaplayer.display设为Panel1.
当AVI动画播放完成后,最后一帧动画不能保存在Panel1上。
具体情况是,用上述方法,随便播放一AVI动画当播放完最后一帧动画时,
试着将Form1最小化,然后再让Form1最大化,这时就会发现,
Panel1上原来的最后一帧动画被刷新掉了。
如何解决这个问题?
 
本来就是会被刷新的。

你在 onPaint 之类的事件中让最后一帧重播一下就行了。
 
直接到最后一帧
 
肯定要刷新的了,g622的方法可以的
 
g622请说的再清楚一些。
 
不过我还是不明白你为何要保存一个avi的最后一帧?
 
其实这个问题不光在播放完最后一帧时存在。
请大家使用Mediaplayer播放AVI动画。在Form1上放一个Mediaplayer.
将Mediaplayer.display设为Panel1,然后在Mediaplayer播放进行当中时,
停止或者暂停,然后试着将Form1最小化,然后再让Form1最大化,这时Panel1
上定格画面同样刷新掉了。这种情况不光出现在form1的最大(小)化时,
如果有其他应用程序窗口压在form1上时,同样会被刷新掉。不知大家用过
Microsoft Mediaplayer 7.0没有?Microsoft Mediaplayer 7.0在播放AVI时就
不会出现这样的问题。大家因该明白我的意思了吧?我试了很多方法都不能满意。
但是,如果我们将Mediaplayer1.display:='';播放,Mediaplayer1就会调出Windows
默认的播放小窗口,这个小窗口就不会出现上述的问题。可是,在我们的应用中
多麽希望这个小窗口在Form1中呀。

 
AGREE DEEM
這是個BUG
 
试过了,果然有这个毛病。
 
好像是overlay显示方式的原因吧。
 
为什么要留最后一帧?我还想把它清掉呢。
非要留的话,在放完的时候保存屏幕,在窗体的OnPaint事件中写回去。
 
deem:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
我手边没机器,不过你可以试试把DisPlay改成Form,你只需这样:
MediaPlayer1.DisPlayRect:=Form2.ClientRect;
大概是这样吧,我记得不是很清楚,但我记得这时你无论怎样改变Form2的大小,
图象将一如既往的填充整个窗口,不象显示在Panel上时,只能固定大小.不过停下
时怎样,我就不知道会怎样了,我现在手头也没机器调试.
 
我记得用mediaplayer在一个panel中播放时,如果暂停panel
上定格画面掉了。这种情况不光出现在form1的最大(小)化时,
如果有其他应用程序窗口压在form1上时,同样会被刷新掉。
好像可以这么解决!!!
放一个image在panel中在播放暂停的时候,抓一下屏,然后放到image中
那不就得了!!!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部