MediaPlayer.isPlaying()
не позволяет узнать, остановлен или остановлен MediaPlayer
. Как узнать, приостановлена ли она и не остановлена?
Спасибо!
MediaPlayer.isPlaying()
не позволяет узнать, остановлен или остановлен MediaPlayer
. Как узнать, приостановлена ли она и не остановлена?
Спасибо!
Один из способов сделать это - проверить, не проигрывается ли медиаплеер (приостановлен) и проверить, находится ли он в позиции, отличной от начальной позиции (1).
MediaPlayer mediaPlayer = new MediaPlayer();
Boolean isPaused = !mediaPlayer.isPlaying() && mediaPlayer.getCurrentPosition() > 1;
Нет API для проверки того, приостановлена ли MediaPlayer
или нет. Поэтому, пожалуйста, используйте любую логическую переменную для проверки и переключения, когда вы приостановили использование любого button
.
onClick(){
if(isPaused)
{
//resume media player
isPaused = false;
}else{
// pause it
isPaused = true;
}
}
В Media Player существует метод isPlaying(), который можно использовать для проверки, проигрывается ли медиаплеер или нет, и, соответственно, мы можем установить флаг и работать над ним. В настоящее время нет апи.
Определите переменную 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;
}
Как сказал 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();
}