在Android中播放背景声音

时间:2013-05-21 06:00:36

标签: android android-mediaplayer

我正在尝试播放贯穿整个应用程序的背景声音。这里我有3个活动,当MAIN活动启动时声音开始。 我想实现这些目标: 1)在整个应用程序中连续播放bg声音 2)当用户点击声音关闭按钮时关闭声音。 3)应用程序关闭时停止声音。

到目前为止,我已尝试使用此代码启动声音,但即使应用已关闭,它也会继续播放。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    audioPlayer();
}

    boolean isPlayingSound = true;
public void onClickSound(View view) {
    final Button btn1 = (Button) findViewById(R.id.button3);

    if(isPlayingSound){ 
        btn1.setBackgroundResource(R.drawable.sound00);
        isPlayingSound=false;
        audioPlayer(false);/*Sound doesn't stops here*/
    } 
    else{ 
        btn1.setBackgroundResource(R.drawable.sound11);
        isPlayingSound=true;
        audioPlayer(true);
    }     
}

public void audioPlayer(boolean status){  

    MediaPlayer mp = MediaPlayer.create(this, R.raw.bg);
    if(status) {
        mp.start();
    }
    else {
        mp.stop();
    }
}

任何人都可以看看并帮助我。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您可以播放音频移动到服务。你可以参考ASOP音乐代码 或者看看

Binding to a Started Service

如“服务”文档中所述,您可以创建既启动又绑定的服务。也就是说,可以通过调用startService()来启动服务,该服务允许服务无限期地运行,并且还允许客户端通过调用bindService()来绑定到服务。

如果您确实允许启动和绑定服务,那么当服务启动时,系统不会在所有客户端解除绑定时销毁服务。相反,您必须通过调用stopSelf()或stopService()来显式停止服务。