mediaplayer播放完毕如何停止帧动画?

how to stop frame animation when mediaplayer completes playback?

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

当我暂停 Activity class 时,我暂停了音频 (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 语句永远不会被执行。我还可以做些什么?我完全不知所措。

您应该设置一个 MediaPlayer.OnCompletionListener with setOnCompletionListener():然后您会在 MediaPlayer 完成时收到回调,您可以停止动画。