如何让Android MediaPlayer()在应用关闭时停止?

时间:2010-09-17 21:22:49

标签: android

我的Android应用程序创建一个MediaPlayer()并播放循环歌曲。当用户离开应用程序时,我需要让它停止播放。我还需要以某种方式获取音量按钮,让用户调整歌曲音量...任何想法?

MediaPlayer mp;

public void setupMediaPlayer()
{
    mp = MediaPlayer.create(context, R.raw.song);
    mp.setLooping(true);
    mp.start(); 
}

public void stopMediaPlayer()
{
    mp.stop();
}

3 个答案:

答案 0 :(得分:3)

根据问题的前半部分:如果您在stopMediaPlayer()onPause()内拨打onDestroy(),则应该得到您想要的内容。例如:

@Override
protected void onPause() {
    super.onPause();
    stopMediaPlayer();
}

下半场:尝试查看AudioManager课程(特别是AUDIO_FOCUS_GAIN),看看是否可以处理您正在寻找的内容。

确保循环音频在应用程序的上下文中是有意义的,但是......如果有一件事我不会错过90年代中期的业余网站那么可怕的MIDI背景音乐,每个人似乎都放了在他们......

答案 1 :(得分:1)

还要考虑onResume(),在用户回到你的应用程序时继续你的循环歌曲。

答案 2 :(得分:1)

stopMediaPlayer并不适合我,因为根据eldarerathis'回答但是这样做了:

 @Override
protected void onPause() {
    super.onPause();
    releaseMediaPlayer();
}

不知道为什么......

编辑:

根据我所做的课程虽然this是正确的做法。

也许有一天我会弄明白差异。 :)