如果在后台应用如何停止音乐

时间:2017-09-13 23:11:16

标签: android android-mediaplayer

当用户离开应用程序或点击主页按钮时,我试图停止播放音乐。即使它在后台,我的应用程序也会播放音乐。如果用户单击主页按钮,如何停止音乐?如果用户返回,则再次播放音乐。 这是我的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.vaporv2);
    if(!mediaPlayer.isPlaying()){
        mediaPlayer.start();
    }
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            mediaPlayer.start();
        }
    });
//toggle off and on :
    MusicButton = (ToggleButton) findViewById(R.id.toggleButton);
    MusicButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (MusicButton.isChecked() && mediaPlayer.isPlaying()) {
                mediaPlayer.pause();

            } else {
                mediaPlayer.start();
            }
        }
    });

2 个答案:

答案 0 :(得分:0)

由于您处于“活动”状态,因此您可以覆盖onResumeonStop方法 然后播放/暂停你的应用。

       @Override
        protected void onResume() {
            super.onResume();
        if(!mediaPlayer.isPlaying()){
            mediaPlayer.start();
        }
        }

        @Override
        protected void onStop() {
            super.onStop();
        mediaPlayer.pause();
        }

答案 1 :(得分:0)

在您的活动中:

检查两种状态:

暂停状态:按主页按钮时

 @Override
    protected void onPause() {
        super.onPause();
        if(mediaPlayer!=null && mediaPlayer.isPlaying()){
            mediaPlayer.pause();
        }
    }

恢复状态:当你回到屏幕时

@Override
    protected void onResume() {
        super.onResume();
        if(mediaPlayer!=null && !mediaPlayer.isPlaying()){
            mediaPlayer.start();
        }
    }