我有以下代码。
例如:
if(player1 != null){
if(player1.isPlaying()){ //check if it playing
//other code
}
}
问题1:即使媒体播放器已完成播放,并且我在完成播放时释放播放器,对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
。 最佳答案
释放播放器不会使实例无效。如果您要发行,请在发布后添加null。
player1.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
mp = null;
Log.d(TAG, "Media player has completed playing");
}
});