在我的一个活动中,有一个使用mediaPlayer播放音乐的按钮。此外,它还可以选择在后台播放音乐或在活动结束时停止播放。在后台停止MediaPlayer - Android
我为此使用此代码。
@Override
protected void onStop() {
super.onStop();
SharedPreferences perfs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
if (!perfs.getBoolean("bg_play", true)) {
mediaPlayer.stop();
mediaPlayer.release();
}
}
完美的作品。现在问题出现在用户重新开始活动并按下播放按钮时,它启动一个新的mediaPlayer并播放新的音乐。当新音乐开始时,我想要停止以前的音乐在后台运行。
这里是我的代码
private void myMediaPlayer() {
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
else {
mediaPlayer.stop();
mediaPlayer.reset();
try {
mediaPlayer.setDataSource(Environment.getExternalStorageDirectory()+"file.mp3");
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
mediaPlayer.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.start();
}
}
而且MediaPlayer的声明
MediaPlayer mediaPlayer=new MediaPlayer();
onCreate
我是初学者编程,所以我可能是错的。 ..不会使mefiaPlayer变量静态工作?但我认为问题在于,当你回到活动中时,活动正在重建。 –
@FtabHussain谢谢。它的作品 – Munawir
酷!我将其添加为答案。请不要忘记接受:) –