我有两个活动:主打和设置。
在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
}
}
});
}
我可以关掉背景音乐,但我不能打开它。
提前感谢!
发布于 2015-05-22 02:37:20
如果您阅读了文档这里,就会看到MediaPlayer.stop()要求您在下一个start()之前再次准备()播放器。
调用stop()将停止播放,并导致处于启动、暂停、准备状态或MediaPlayer状态的PlaybackCompleted进入停止状态。在停止状态下,在再次调用prepareAsync()或准备状态将MediaPlayer对象设置为准备状态之前,无法启动回放。
也许您想要做一个暂停(),因为它似乎不需要一个新的准备()或prepareAsync()。
祝好运!
https://stackoverflow.com/questions/30394338
复制