为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地10843 2021-09-03 10:25:47
我有一个带有播放或暂停音乐按钮的应用程序。在播放音乐时按下后退按钮会暂停音乐,再次打开应用程序会在按下播放按钮后恢复音乐。但这不适用于主页或最近按钮。音乐暂停,但在重新打开应用程序并按下播放按钮后,直到强制关闭才会播放音乐。这是代码: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);@Overridepublic 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();            }        }    });}@Overrideprotected void onResume() {    super.onResume();    if (policeSound != null) {        policeSound = MediaPlayer.create(this, R.raw.police);        policeSound.start();    }}@Overridepublic void onPause() {    super.onPause();    if (policeSound.isPlaying())        policeSound.pause();}//Back button pressed.@Overridepublic void onBackPressed() {    super.onBackPressed();    if (policeSound.isPlaying())        policeSound.pause();}@Overrideprotected void onDestroy() {    super.onDestroy();    policeSound.stop();    policeSound = null;}}
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

如果您按下主页按钮,应用程序将转到后台,当您从后台返回时,您应该覆盖 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;

    }

}

我希望这对你有帮助


查看完整回答
反对 回复 2021-09-03
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信