Возможно, вы захотите заглянуть в onPause
и затем убить медиаплеер.Проблема в том, что нет ссылки на медиаплеер, как только он был сделан во второй раз.В результате вы запускаете свою деятельность, воспроизводите музыку, но при выходе (например, нажмите кнопку HOME) медиаплеер не получает приказа остановиться (он работает как отдельный поток).Когда вы снова откроете его, он запустит новый медиаплеер в новом потоке, издающий два звука.
Чтобы это исправить, убейте медиаплеер должным образом при выходе.Это правильно убьет медиаплеер, когда вы выйдете из игры:
@Override
protected void onPause(){
super.onPause();
if(mediaplayer.isPlaying()){
try{
mediaplayer.stop();
}
catch(IllegalStateException){
Log.d("mediaplayer","Media player was stopped in an illegal state.");
}
}
}
Если вы хотите продолжить музыку, пока игра не находится на переднем плане, вам нужно использовать Service
.