Android: как узнать, приостановлена ​​ли MediaPlayer?

MediaPlayer.isPlaying() не позволяет узнать, остановлен или остановлен MediaPlayer. Как узнать, приостановлена ​​ли она и не остановлена?

Спасибо!

Ответ 1

Один из способов сделать это - проверить, не проигрывается ли медиаплеер (приостановлен) и проверить, находится ли он в позиции, отличной от начальной позиции (1).

MediaPlayer mediaPlayer = new MediaPlayer();

Boolean isPaused = !mediaPlayer.isPlaying() && mediaPlayer.getCurrentPosition() > 1;

Ответ 2

Нет API для проверки того, приостановлена ​​ли MediaPlayer или нет. Поэтому, пожалуйста, используйте любую логическую переменную для проверки и переключения, когда вы приостановили использование любого button.

onClick(){
 if(isPaused)
  {
    //resume media player
    isPaused = false;
  }else{
   // pause it
     isPaused = true;
  }
} 

Ответ 3

В Media Player существует метод isPlaying(), который можно использовать для проверки, проигрывается ли медиаплеер или нет, и, соответственно, мы можем установить флаг и работать над ним. В настоящее время нет апи.

Ответ 4

Определите переменную boolean под названием playedAtLeastOnce (или что угодно), затем установите ее в true, если ваш объект MediaPlayer был воспроизведен как минимум один раз. Хорошее место для назначения его true - это метод onPrepared(MediaPlayer mp) из MediaPlayer.OnPreparedListener реализованного интерфейса.

Тогда, если MediaPlayer не воспроизводится, а playedAtLeastOnce - true, вы можете сказать, что MedaiPlayer приостановлено.

boolean playedAtLeastOnce;

@Override
public void onPrepared(MediaPlayer mp) {
    mp.start();
    playedAtLeastOnce = true;
}

public boolean isPaused() {
    if (!mMediaPlayer.isPlaying && playedAtLeastOnce)
        return true;
    else
        return false;
    // or you can do like this
    // return !mMediaPlayer.isPlaying && playedAtLeastOnce;
}

Ответ 5

Как сказал Ankit, нет API для проверки того, приостановлен ли Media Player или нет, мы должны проверить его программно, как это

private boolean pause=true; //A Boolean variable to check your state declare it true or false here depends upon your requirement

Теперь вы можете сделать способ здесь, чтобы проверить, что всякий раз, когда вы хотите проверить плеер, это пауза

public void checkplayer(MediaPlayer player){
if(isPause=true)   //check your declared state if you set false or true here
Player.pause();
else if(isPause=false){
Player.play();
 or 
Player.stop();
}