我有以下代码。
例如:
if(player1 != null){
if(player1.isPlaying()){ //check if it playing
//other code
}
}
问题1:
即使媒体播放器已完成播放并且我在oncompletion上释放播放器,因此null的条件检查始终通过。
//完成播放器后发布
player1.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
Log.d(TAG, "Media player has completed playing");
}
});
问题2:
如果玩家已完成游戏,则对null
的检查仍会返回false,并且isPlaying
给出illegalstateexception
时会失败。
答案 0 :(得分:3)
释放播放器不会使实例无效。如果那就是你想要的,那么在发布后添加null。
player1.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
mp = null;
Log.d(TAG, "Media player has completed playing");
}
});