我有以下代码。
例如:

 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");

                }
            });

10-06 01:26