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;
}
}
定义一个名为playedAtLeastOnce
(或其他你想要的名称)的boolean
变量,如果你的MediaPlayer
对象已经播放过至少一次,则将其设置为true
。在MediaPlayer.OnPreparedListener
实现接口中的onPrepared(MediaPlayer mp)
方法中将其分配为true是一个好地方。
然后,如果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 it like this
// return !mMediaPlayer.isPlaying && playedAtLeastOnce;
}
你可以创建全局变量
private boolean notIdle = false;
在调用setDataSource()
之后,在监听器setOnPreparedListener()
中
notIdle = true;
重写 MediaPlayer.reset()
函数,在函数内部
notIdle = false;
notIdle
在 start()
、pause()
和 stop()
状态下将为 true
... 您可以根据需要更改此行为。
正如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();
}