从另一个活动控制媒体播放器



我有两个活动: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()。

祝你好运!

最新更新