【问题标题】:how to stop frame animation when mediaplayer completes playback?当媒体播放器完成播放时如何停止帧动画?
【发布时间】:2015-12-13 07:24:18
【问题描述】:

我有一个帧动画(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 语句永远不会被执行。我还可以做些什么?我完全不知所措。

【问题讨论】:

    标签: android android-mediaplayer animationdrawable


    【解决方案1】:

    你应该设置一个MediaPlayer.OnCompletionListenersetOnCompletionListener():然后当MediaPlayer 结束时你会得到一个回调,你可以停止你的动画。

    【讨论】:

    • 如果这回答了您的问题,请确保接受答案以从未回答的问题队列中删除该问题。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多