我有2项活动:主要和设置
在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
}
}
});
}
我可以关闭背景音乐,但我无法打开它
提前致谢!
答案 0 :(得分:0)
如果您阅读文档here,您会发现MediaPlayer.stop()要求您在下次开始()之前再次准备()播放器。
调用stop()停止播放并在Started中导致MediaPlayer, Paused,Prepared或PlaybackCompleted状态进入Stopped 州。一旦处于Stopped状态,直到无法开始播放 调用prepare()或prepareAsync()来设置MediaPlayer对象 再次进入准备状态。
也许你想做一个暂停()因为它似乎不需要新的prepare()或prepareAsync()。
祝你好运!