【问题标题】:MediaPlayer carries on playing after app is closed应用关闭后MediaPlayer继续播放
【发布时间】:2011-01-20 13:56:31
【问题描述】:

我知道这是 android 的多任务处理功能的一部分,但我找不到我的问题的解决方案。

我的应用程序中有一个媒体播放器对象,它播放一个反复循环播放的音频剪辑,并且应该只在应用程序关闭时停止,它与正在播放没有声音的视频的 VideoView 一起运行(原因:我需要视频无缝循环,而且似乎只有在没有声音附加到视频的情况下才能做到这一点)。我需要在视频停止时停止声音(即当应用程序关闭时。我知道 VideoView 有方法 isPlaying() 所以我想它可能与此有关,但到目前为止我尝试的一切都失败了。

我需要使用线程吗?有什么方法可以从 VideoView 发出一条消息说它不再播放?然后我可以调用 MediaPlayer 对象的 stop() 方法。

【问题讨论】:

    标签: java android media-player


    【解决方案1】:

    尝试以下代码来停止 MediaPlayer 对象,

    @Override
        protected void onPause() {
            if(mPlayer!=null || mPlayer.isPlaying()){
                mPlayer.stop();
                mPlayer.release();
            }
            mPlayer = null;
            super.onPause();
        }
    

    【讨论】:

    • 我认为您错过了重点,我只能在单独的 VideoView 停止播放时停止 MediaPlayer,但我尝试获取已停止播放的回调的每种方法都没有运气。
    • @SamRowley:您已经知道VideoView 何时停止播放,因为您要么手动停止它,要么在活动上调用onDestroy()。因此,在这两个地方,停止MediaPlayer。 @VenkaReddy 也在正确的轨道上,因为您可能应该在 onPause()onStop() 中自己停止视频播放(不在屏幕上时播放没有意义),因此您应该停止 MediaPlayer 在那个时候也是。
    • 谢谢,一开始我并没有真正理解你的意思,工作完美。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    相关资源
    最近更新 更多