2014-01-24 5 views
1

Ответ здесь How to check if mediaplayer is playing or stopped? не работает для меня. Кажется, что MediaPlayer не имеет метода getState. Этот метод обесценивается?Как проверить, остановлен ли MediaPlayer?

Спасибо,

+1

Класс «MediaPlayer» для Android отличается от «MediaPlayer», используемого в упомянутом выше вопросе StackOverflow, следовательно, отсутствующий метод. – Voicu

+0

Вы попробовали ответ Пател? – San

ответ

2

Try на коде ниже:

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()

Надеется, что это поможет ..

+0

На диаграмме http://developer.android.com/reference/android/media/MediaPlayer.html#StateDiagram, я думаю, что мы все еще не можем отличить Prepared и Stopped, когда isPlaying() является ложным. –

+0

В моем случае я хотел создать аудиоконтроллер с пуском, паузой, остановкой, следующими кнопками. Я думаю, что мое начальное состояние должно быть подготовлено, которое после того, как пользователь выбрал песню, и мое приложение подготовило песню. Затем пользователь может приостановить или остановить его. Проблема в том, что после паузы я могу напрямую вызвать MediaPlayer.start(), но после остановки, я должен переподготовку песни перед вызовом start. Вот почему я спросил. Имеет ли смысл мой смысл? Может быть, мне нужно использовать другую логику или поддерживать состояние вручную в моем коде? Благодарю. –

0

Если у вас возникли проблемы с повторным запуском MediaPlayer после его остановки, затем попробуйте следующее:

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

В основном вы готовите его для следующего запуска. Это сработало для меня.

Смежные вопросы