如何使用首选项中的复选框播放/停止MediaPlayer



在这段代码中,我在xml文件夹中用键"music"做了一个首选项复选框。

   <?xml version="1.0" encoding="utf-8"?>
   <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <CheckBoxPreference 
    android:title="Music"
    android:key="music"
    android:defaultValue="true"
    android:summary="Check/Uncheck this to switch on/off sound"
    />
    </PreferenceScreen> 

如果选中此复选框,则我的媒体播放器将开始播放。如果未选中此项,它将不会启动。但音乐并没有在取消检查后立即停止。

我想实现的是,如果我取消选中首选项中的复选框,音乐应该立即停止

下面是我在MainActivity中编写的代码,我也在onPause()方法中使用了这段代码。但什么都不管用。

希望你们能帮助我。。提前谢谢。。

        MediaPlayer song;
        song= MediaPlayer.create(this, R.raw.bg);
        song.setLooping(true);
        SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        Boolean music=prefs.getBoolean("music", true);
        if(music == true)
        song.start();

音乐停止和启动应在选中/取消选中复选框时进行。

yourCheckbox.setOnClickListener(new OnClickListener() { 
      @Override
      public void onClick(View v) {
        //is yourCheckbox checked?
        if (((CheckBox) v).isChecked()) {
            if(song.isPlaying())
                song.stop();
        }
    }
});

如果是首选活动,您可以这样做,

music = findPreference("music");
music.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
        //code to stop Music
        return false;
    }
});

最新更新