0

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

当我暂停我的 Activity 类时(例如,当我按下设备的主页按钮时),我会暂停音频(mediaplayer.pause())并停止动画(因为我无法找到暂停它的方法)。当我恢复我的活动时,我调用 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 语句永远不会被执行。我还可以做些什么?我完全不知所措。

4

1 回答 1

1

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

于 2015-12-13T07:55:31.653 回答