我正在尝试播放贯穿整个应用程序的背景声音。这里我有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();
}
}
任何人都可以看看并帮助我。谢谢你的帮助!
答案 0 :(得分:0)
您可以播放音频移动到服务。你可以参考ASOP音乐代码 或者看看
如“服务”文档中所述,您可以创建既启动又绑定的服务。也就是说,可以通过调用startService()来启动服务,该服务允许服务无限期地运行,并且还允许客户端通过调用bindService()来绑定到服务。
如果您确实允许启动和绑定服务,那么当服务启动时,系统不会在所有客户端解除绑定时销毁服务。相反,您必须通过调用stopSelf()或stopService()来显式停止服务。