You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现应用最小化或熄屏时停止MediaPlayer播放音乐

问题描述

在Android应用中实现了音乐播放控制,但应用最小化或熄屏时音乐仍持续播放,需要添加代码实现此时自动停止音乐。

现有实现代码
button4 = findViewById(R.id.button4);

musicSound = MediaPlayer.create(this, R.raw.music);
buttonClick(); 
}

private Button button4;
private MediaPlayer musicSound;

public void buttonClick() {
    button4.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    soundPlay(musicSound);
                }
            } ); 
}
public void soundPlay(MediaPlayer sound) {
    sound.start();
    sound.setLooping(true); 
}

buttonMusicStop = findViewById(R.id.buttonMusStop);
buttonClick2();
}
private ImageButton buttonMusicStop;
public void buttonClick2() {
    buttonMusicStop.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    soundPlay2(musicSound);

                }});
}

public void soundPlay2(MediaPlayer sound) {
    if (sound.isPlaying()) {
        sound.pause();

    } else {
        sound.start();
        sound.setLooping(true);
    } 
}
解决方案

利用Android Activity的生命周期回调方法,在应用进入后台(最小化)或熄屏时触发音乐停止操作,同时在Activity销毁时释放资源:

1. 添加后台停止逻辑

在你的Activity类中重写onPause()方法,当应用失去焦点(包括熄屏、最小化)时暂停或停止音乐:

@Override
protected void onPause() {
    super.onPause();
    if (musicSound != null && musicSound.isPlaying()) {
        // 暂停音乐,后续回到应用可直接start恢复
        musicSound.pause();
        // 若需彻底停止而非暂停,可替换为 musicSound.stop(); 但停止后需重新prepare才能播放
    }
}

2. 添加资源释放逻辑

重写onDestroy()方法,释放MediaPlayer资源避免内存泄漏:

@Override
protected void onDestroy() {
    super.onDestroy();
    if (musicSound != null) {
        musicSound.release();
        musicSound = null;
    }
}

逻辑说明

  • onPause()会在应用最小化、熄屏、跳转到其他Activity时触发,能及时拦截音乐播放;
  • 选择pause()而非stop()是因为暂停后无需重新初始化MediaPlayer即可恢复播放,体验更流畅;
  • 必须在onDestroy()中释放MediaPlayer,否则会占用系统资源导致内存泄漏。

内容的提问来源于stack exchange,提问作者Oganes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:15:43