我的设置活动中有一个媒体播放器,当切换按钮打开时播放一首歌曲。它工作正常,当活动改变时,音乐继续播放,这就是我想要的。问题是,当我再次返回设置活动时,切换按钮被设置为关闭,一旦点击它就会启动一个与当前播放器一起播放的新媒体播放器。无论如何它是否记得原始媒体播放器已开启?
public class Settings extends AppCompatActivity {
public MediaPlayer mp = null;
private SeekBar volumeSeekbar = null;
private AudioManager audioManager = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
initControls();
Button b = (Button) findViewById(R.id.toggleButton);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Spinner spinner = (Spinner) findViewById(R.id.spinner);
String text = spinner.getSelectedItem().toString();
if (mp == null) {
int song = getResources().getIdentifier(text, "raw", "com.example.dan14.memorygame");
mp = MediaPlayer.create(Settings.this, song);
mp.start();
} else {
mp.stop();
mp = null;
}
}
});
}
答案 0 :(得分:1)
在我看来,你的代码应该至少在大多数时候都能正常工作。
尝试
public static MediaPlayer mp = null;
更新: 通常,当需要诸如音乐播放之类的活动间属性时,您应该尝试服务,这是一项重要的Android功能。至少你应该知道它并决定该怎么做。这是来自Google的综合教程。 http://developer.android.com/guide/topics/media/mediaplayer.html
答案 1 :(得分:0)
将按钮移出onCreate
并将其作为活动成员。