再生ボタンのクラッシュ

Rklearner:

私は、4つの異なる曲のための4つのImageViewsを持っており、それらをクリックすることで、それは今私がプレイし、一時停止ボタンとの問題を抱えている曲を再生する音楽プレーヤーで働いている、コーディングに新たなんです。ここでのコードは次のとおりです。

 case R.id.btn_play:


            if (mediaPlayer.isPlaying()) {
                mediaPlayer.pause();
            } else {
                mediaPlayer.start();
            }


            break;

今、私の問題は、長いmusicplayer.creatは、このコードは罰金に動作しますが、私は歌アプリのクラッシュをプレイする前に、私は再生ボタンをクリックした場合のアクションであるようようです。私はは、setEnabled(偽)によるメイクボタン非アクティブ化について知っています。しかし、私は音楽プレーヤーオブジェクトが作成されていない間、何も返さないために、再生ボタンをコーディングする方法方法を知りたいです。

更新:

ここでは、コードの他の部分は次のとおりです。

        btn_play.setEnabled(false);
    btn_nxt.setEnabled(false);
    btn_pre.setEnabled(false);
}

@Override
public void onClick(View v) {

    switch (v.getId()) {

        case R.id.btn_nxt:
            try {
                mediaPlayer.stop();
                count++;
                mediaPlayer = MediaPlayer.create(this, musicList[count]);
                mediaPlayer.start();
            } catch (Exception e) {
                mediaPlayer.stop();
                count = 0;
                mediaPlayer = mediaPlayer.create(this, musicList[count]);
                mediaPlayer.start();
            }
            break;


        case R.id.btn_pre:
            try {
                mediaPlayer.stop();
                count--;
                mediaPlayer = MediaPlayer.create(this, musicList[count]);
                mediaPlayer.start();
            } catch (Exception e) {
                mediaPlayer.stop();
                count = 3;
                mediaPlayer = mediaPlayer.create(this, musicList[count]);
                mediaPlayer.start();
            }
            break;

        case R.id.button:
            btn_play.setEnabled(true);
            btn_nxt.setEnabled(true);
            btn_pre.setEnabled(true);
            mediaPlayer = MediaPlayer.create(this, musicList[0]);
            mediaPlayer.start();
            count = 0;

再生ボタンのクラッシュを再生するために更新がないとき、あなたは見ることができるように。

更新:

ここでのエラーは、次のとおりです。

03-02 10:03:39.576 5146-5146/com.example.musicplayerworking E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.musicplayerworking, PID: 5146
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.media.MediaPlayer.isPlaying()' on a null object reference
    at com.example.musicplayerworking.MainActivity.onClick(MainActivity.java:71)
    at android.view.View.performClick(View.java:5210)
    at android.view.View$PerformClick.run(View.java:20976)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:6220)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
メリーランドゴラム・ラーマンTushar:

条件ならばメディアプレーヤがnullの場合だけで、チェックに追加します。

if(mediaPlayer == null) mediaplayer = MediaPlayer.create(this, musicList[count]);

if (mediaPlayer.isPlaying()) {
    mediaPlayer.pause();
} else {
    mediaPlayer.start();
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=283103&siteId=1