在我的一個活動中,有一個使用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
酷!我將其添加爲答案。請不要忘記接受:) –