2016-07-22 11 views
1

同じアクティビティで2つのオーディオトラックがあるため、2つのメディアプレーヤーを使用しています。私はすべてうまく動作している。唯一の問題は、アクティビティが一時停止したときにオーディオトラックが一時停止するようにonPause()を呼び出す場合です。mediaplayer.isPlaying()を呼び出すとonPause()がクラッシュします

オーディオトラック1が再生されている場合、一時停止中は、mediaPlayer2によるヌルポインタ例外のためにアプリケーションがクラッシュし、トラック2の再生中にアプリがクラッシュします。

ここActivity.java

@Override 
    protected void onPause() { 
     super.onPause(); 

     if (mediaPlayer1.isPlaying()) { 
      mediaPlayer1.pause(); 
      pp1.setImageResource(R.drawable.play); 
     } 

     if (mediaPlayer2.isPlaying()) { 
      mediaPlayer2.pause(); 
      pp2.setImageResource(R.drawable.play); 
     } 
    } 

とエラー(S)

エラー1

java.lang.RuntimeException: Unable to pause activity {com.music.track/com.music.track.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.media.MediaPlayer.isPlaying()' on a null object reference 
                       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3454) 
                       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3408) 
                       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3383) 
                       at android.app.ActivityThread.access$1100(ActivityThread.java:154) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:152) 
                       at android.app.ActivityThread.main(ActivityThread.java:5497) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                      Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.media.MediaPlayer.isPlaying()' on a null object reference 
                       at com.music.track.MainActivity.onPause(MainActivity.java:186) 
                       at android.app.Activity.performPause(Activity.java:6397) 
                       at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1380) 
                       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3435) 
                       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3408)  
                       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3383)  
                       at android.app.ActivityThread.access$1100(ActivityThread.java:154)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:152)  
                       at android.app.ActivityThread.main(ActivityThread.java:5497) 

エラー2

java.lang.RuntimeException: Unable to pause activity {com.music.test/com.music.test.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.media.MediaPlayer.isPlaying()' on a null object reference 
                        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3454) 
                        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3408) 
                        at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3383) 
                        at android.app.ActivityThread.access$1100(ActivityThread.java:154) 
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391) 
                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                        at android.os.Looper.loop(Looper.java:152) 
                        at android.app.ActivityThread.main(ActivityThread.java:5497) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.media.MediaPlayer.isPlaying()' on a null object reference 
                        at com.music.test.MainActivity.onPause(MainActivity.java:181) 
                        at android.app.Activity.performPause(Activity.java:6397) 
                        at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1380) 
                        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3435) 
                        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3408)  
                        at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3383)  
                        at android.app.ActivityThread.access$1100(ActivityThread.java:154)  
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)  
                        at android.os.Handler.dispatchMessage(Handler.java:102)  
                        at android.os.Looper.loop(Looper.java:152)  
                        at android.app.ActivityThread.main(ActivityThread.java:5497) 

答えて

1

mediaPlayer1をチェックからのコードです& 2それらを使用する前にヌル用

関連する問題