【发布时间】:2014-04-05 17:43:56
【问题描述】:
MediaPlayer.isPlaying() 不允许知道MediaPlayer 是停止还是暂停。如何知道它是暂停还是没有停止?
谢谢!
【问题讨论】:
-
见this
标签: java android stream media-player android-mediaplayer
MediaPlayer.isPlaying() 不允许知道MediaPlayer 是停止还是暂停。如何知道它是暂停还是没有停止?
谢谢!
【问题讨论】:
标签: java android stream media-player android-mediaplayer
定义一个名为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;
}
【讨论】:
执行此操作的一种方法是检查媒体播放器是否未播放(暂停)并检查它是否位于起始位置 (1) 以外的位置。
MediaPlayer mediaPlayer = new MediaPlayer();
Boolean isPaused = !mediaPlayer.isPlaying() && mediaPlayer.getCurrentPosition() > 1;
【讨论】:
正如 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();
}
【讨论】:
没有 API 可以检查 MediaPlayer 是否已暂停。因此,当您使用任何button 暂停时,请使用任何布尔变量来检查和切换它。
onClick(){
if(isPaused)
{
//resume media player
isPaused = false;
}else{
// pause it
isPaused = true;
}
}
【讨论】: