如何在媒体播放器完成播放时停止帧动画?

时间:2015-12-13 07:24:18

标签: android android-mediaplayer animationdrawable

我有一个帧动画(动画Drawable)应该与音频(MediaPlayer)同步运行。

当我暂停我的Activity类时(例如当我按下设备的主页按钮时),我暂停音频(mediaplayer.pause())并停止动画(因为我无法找到暂停它的方法) 。当我恢复我的Activity时,我调用了mediaplayer.start(),它从暂停的地方开始。然后,我调用frameAnimation.start,它再次从头开始,即使在媒体播放器完成播放后也继续完成循环。结果,frameAnimation和mediaPlayer失去同步。我该怎么办?我是android编程的新手。请帮忙。

我的帧动画xml类似于

android:id="@+id/selected" android:oneshot="true">
<item android:drawable="@drawable/bird1" android:duration="750"/>
<item android:drawable="@drawable/bird2" android:duration="750"/>

我的onResume()是

protected void onResume() {
         mediaplayer.start();
         frameAnimation.start();
         If(!mediaplayer.isPlaying()&&frameAnimation.isRunnng()){
                frameAnimation.stop();                                                                   
}

显然,当媒体播放器正在播放时,if语句永远不会被执行。我还可以做些什么?我完全失去了。

1 个答案:

答案 0 :(得分:1)

您应该使用MediaPlayer.OnCompletionListener设置setOnCompletionListener():然后当MediaPlayer完成后您将收到回调,并且您可以停止动画。