我有一个帧动画(动画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语句永远不会被执行。我还可以做些什么?我完全失去了。
答案 0 :(得分:1)
您应该使用MediaPlayer.OnCompletionListener设置setOnCompletionListener():然后当MediaPlayer
完成后您将收到回调,并且您可以停止动画。