按主页或最近的按钮后音乐不再播放

我有一个带有播放或暂停音乐按钮的应用程序。在播放音乐时按下后退按钮会暂停音乐,再次打开应用程序会在按下播放按钮后恢复音乐。但这不适用于主页或最近按钮。音乐暂停,但在重新打开应用程序并按下播放按钮后,直到强制关闭才会播放音乐。这是代码:


package com.example.firozkaoo2222.myapplication;


import android.media.MediaPlayer;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;


import static com.example.firozkaoo2222.myapplication.R.raw.police;


public class MainActivity extends AppCompatActivity {


private MediaPlayer policeSound = MediaPlayer.create(this, police);


@Override

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    Button policeSounds = this.findViewById(R.id.police);


    policeSounds.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {

            if (policeSound == null) {

                policeSound = MediaPlayer.create(getApplicationContext(), R.raw.police);

            }


            if (policeSound.isPlaying()) {

                policeSound.pause();

            } else {


                policeSound.start();

            }

        }

    });

}


@Override

protected void onResume() {

    super.onResume();

    if (policeSound != null) {

        policeSound = MediaPlayer.create(this, R.raw.police);

        policeSound.start();

    }


}


@Override

public void onPause() {

    super.onPause();

    if (policeSound.isPlaying())

        policeSound.pause();

}


//Back button pressed.

@Override

public void onBackPressed() {

    super.onBackPressed();

    if (policeSound.isPlaying())

        policeSound.pause();

}


@Override

protected void onDestroy() {

    super.onDestroy();

    policeSound.stop();

    policeSound = null;

}

}


慕的地10843
浏览 127回答 1
1回答

ABOUTYOU

如果您按下主页按钮,应用程序将转到后台,当您从后台返回时,您应该覆盖 onResume() 方法;代码:public class MainActivity extends AppCompatActivity {    //THIS IS YOUR LAST MISTAKE. IF YOU TRY TO CREATE THE OBJECT WITH THE CONTEXT AND THE RESOUERCES    //WHEN THE ACTIVITY IS NOT CREATED YET, YOUR APP CRASH    //private MediaPlayer policeSound = MediaPlayer.create(this, R.raw.police);    private MediaPlayer policeSound;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button policeSounds = this.findViewById(R.id.police);        policeSounds.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if (policeSound == null) {                    policeSound = MediaPlayer.create(getApplicationContext(), R.raw.police);                }                if (policeSound.isPlaying()) {                    policeSound.pause();                } else {                    policeSound.start();                }            }        });    }    @Override    protected void onResume() {        super.onResume();        if (policeSound != null) {            policeSound = MediaPlayer.create(this, R.raw.police);            policeSound.start();        }    }    @Override    public void onPause() {        super.onPause();        if (policeSound.isPlaying())            policeSound.pause();    }    //Back button pressed.    @Override    public void onBackPressed() {        super.onBackPressed();        if (policeSound.isPlaying())            policeSound.pause();    }    @Override    protected void onDestroy() {        super.onDestroy();        policeSound.stop();        policeSound = null;    }}我希望这对你有帮助
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java