从另一个Activity控制Mediaplayer

时间:2015-05-22 10:28:17

标签: android

我有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
            }
        }
    });
}

我可以关闭背景音乐,但我无法打开它

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果您阅读文档here,您会发现MediaPlayer.stop()要求您在下次开始()之前再次准备()播放器。

  

调用stop()停止播放并在Started中导致MediaPlayer,   Paused,Prepared或PlaybackCompleted状态进入Stopped   州。一旦处于Stopped状态,直到无法开始播放   调用prepare()或prepareAsync()来设置MediaPlayer对象   再次进入准备状态。

也许你想做一个暂停()因为它似乎不需要新的prepare()或prepareAsync()。

祝你好运!