android mediaplayer:除了isPlaying之外如何获得玩家状态?

时间:2013-12-02 02:19:27

标签: android media-player

媒体播放器已播出,但仅限于此。我怎么知道玩家是暂停还是被禁止?

  

可以暂停和停止播放,以及当前播放位置   可以调整。可以通过pause()暂停播放。什么时候打电话给   pause()返回,MediaPlayer对象进入Paused状态。注意   从Started状态到Paused状态的转换   反之亦然在播放器引擎中异步发生。可能需要   在调用isPlaying()之前更新状态的时间   在流内容的情况下,可以是几秒钟。从:   MediaPlayer.html#isPlaying

2 个答案:

答案 0 :(得分:0)

您看到的所有方法都是唯一可用的方法。对于其他事情,您可以使用:

try {
  //command
} finally {
  //only called once the calls in the try clause are completed
}

答案 1 :(得分:0)

到目前为止,MediaPlayer API中没有可用的方法来获取除了播放之外的当前状态。

如果当前正在播放,则

MediaPlayer.isPlaying()方法返回true,否则返回false,如果以无效状态调用,则可能抛出IllegalStateException。

if(mPlayer.isPlaying()){
 // MediaPlayer is in play state
}
else{
 // MediaPlayer is not in play state 
}

我建议您保留一个枚举标志来标识每个州,例如

public enum PlayerStates{PAUSED,STOPPED,PLAYING};
PlayerStates state;
...

public void pause(){
mPlayer.pause();
state=PlayerStates.PAUSED;
}

public void play(){
mPlayer.start();
state=PlayerStates.PLAYING;
}

public void stop(){
mPlayer.stop();
state=PlayerStates.STOPPED;
}


// returns the current state of MediaPlayer
public PlayerStates getState(){
    return state;
}

我希望这对你有所帮助。