我有两个活动:Main和Setting
在MainActivity中,我有一个公共静态Mediaplayer mp来启动我的应用程序的背景音乐
现在,我在SettingActivity,我有一个开关打开或关闭背景音乐
public void listenSwitch()
{
s.setChecked(true); // On
s.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked == false)
{
MainActivity.mp.stop(); // Works
}
else
{
// I use create(this, raw file) and then MainActivity.mp.start(); but error occurs
}
}
});
}
我可以关闭背景音乐,但不能打开它
提前感谢!
如果你阅读这里的文档,你会看到MediaPlayer.stop()要求你在下次启动()之前再次准备()播放器。
调用stop()停止播放并导致MediaPlayer处于Started状态。暂停,准备或播放完成状态进入停止状态。进入"已停止"状态后,播放将无法开始,直到调用prepare()或prepareAsync()来设置MediaPlayer对象返回"已准备"状态
也许你想做一个pause(),因为它似乎不需要一个新的prepare()或prepareAsync()。
祝你好运!