Android:如何知道MediaPlayer是否暂停?

ki1q1bka  于 2023-01-19  发布在  Android
关注(0)|答案(5)|浏览(370)

MediaPlayer.isPlaying()不允许知道MediaPlayer是停止还是暂停,如何知道MediaPlayer是暂停还是没有停止?
谢谢!

deyfvvtc

deyfvvtc1#

一种方法是检查媒体播放器是否未播放(暂停),并检查其是否位于除起始位置(1)以外的位置。

MediaPlayer mediaPlayer = new MediaPlayer();

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

apeeds0o2#

没有API来检查MediaPlayer是否暂停。因此,请使用任何布尔变量来检查和切换它时,您暂停使用任何button

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

56lgkhnf3#

定义一个名为playedAtLeastOnceboolean变量(或者任何你想要的),然后如果你的MediaPlayer对象至少被播放过一次,就把它设置为true。把它赋值为true的好地方是在MediaPlayer.OnPreparedListener实现接口的onPrepared(MediaPlayer mp)方法中。
然后,如果MediaPlayer没有播放,并且 playedAtLeastOncetrue,则可以说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 it like this
    // return !mMediaPlayer.isPlaying && playedAtLeastOnce;
}
fkaflof6

fkaflof64#

您可以创建全局变量

private boolean notIdle = false;

setDataSource()之后,在侦听器setOnPreparedListener()

notIdle = true;

覆盖MediaPlayer.reset()函数,在其中

notIdle = false;

notIdlestart()pause()stop()状态下将为true ...您可以在认为更方便时更改此行为。

h9a6wy2h

h9a6wy2h5#

Ankit回答说,没有API可以检查媒体播放器是否暂停,我们必须像这样通过编程来检查它

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

相关问题