【问题标题】:How to check if MediaPlayer is stopped?如何检查 MediaPlayer 是否停止?
【发布时间】:2014-01-24 05:57:00
【问题描述】:

答案在这里 How to check if mediaplayer is playing or stopped? 对我不起作用。 MediaPlayer 似乎没有 getState 方法。 这种方法折旧了吗?

谢谢,

【问题讨论】:

  • Android 的 MediaPlayer 类与上述 StackOverflow 问题中使用的 MediaPlayer 不同,因此缺少方法。
  • 你尝试过帕特尔的回答吗?

标签: android media-player media android-mediaplayer


【解决方案1】:

试试下面的代码:

MediaPlayer mp = new MediaPlayer();
...
...
if(mp.isPlaying())
    //YOU LOGIC IF PLAYER IS PLAYING
else
    //YOU LOGIC IF PLAYER IS NOT PLAYING

参考链接:http://developer.android.com/reference/android/media/MediaPlayer.html#isPlaying()

希望对你有所帮助..

【讨论】:

  • 在图表developer.android.com/reference/android/media/…中,我认为当isPlaying()为false时我们仍然无法区分Prepared和Stopped。
  • 就我而言,我想设计一个带有开始、暂停、停止、下一步按钮的音频控制器。我认为我的初始状态应该是 Prepared ,这是在用户选择一首歌之后,我的应用程序准备了这首歌。然后用户可以暂停或停止它。问题是暂停之后,我可以直接调用MediaPlayer.start(),但是停止之后,我必须在调用start之前重新准备歌曲。这就是我问的原因。我的逻辑有道理吗?也许我应该使用其他逻辑或在我的代码中手动维护状态?谢谢。
【解决方案2】:

如果您在停止MediaPlayer 后遇到问题,请尝试以下操作:

if (mMediaPlayer != null) {
    mMediaPlayer.stop();
    try {
        mMediaPlayer.prepare();
    } catch (IOException e) {
        Log.e(LOG_TAG, "IOException during prepare after stop! mMediaPlayer value: " + mMediaPlayer);
    }
}

你基本上是为下一次开始做准备。它对我有用。

【讨论】:

    【解决方案3】:

    在调用 player.stop() 时设置一个标志。

    palyer.stop();
    isStop = true;
    if(isStop){
        // Do someing 
        isStop = false;
    }
    

    【讨论】:

    • 这似乎是处理问题的最干净和最好的方法。我在开发视频应用程序时遇到了这个问题,这就是我解决它的方法。在“做某事”部分,只需添加player.prepare()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    相关资源
    最近更新 更多