наконец я нашел решение и оно работает
сначала создайте метод остановки медиаплеера
public void cleanUpMediaPlayer(){
if(mediaPlayer != null) {
if(mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
mediaPlayer.release();
}
}
затем создайте метод запуска для каждого звука, и в этом методе необходимо применить функцию, чтобы остановить медиаплеер, если он существует
public void sound1(){
cleanUpMediaPlayer();
mediaPlayer = MediaPlayer.create(this, R.raw.music1);
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
public void sound2(){
cleanUpMediaPlayer();
mediaPlayer = MediaPlayer.create(this, R.raw.music2);
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
public void sound3(){
cleanUpMediaPlayer();
mediaPlayer = MediaPlayer.create(this, R.raw.music3);
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
наконец-то прозвучит звук в нужный момент
для меня, я хочу, чтобы звуки менялись каждый раз, когда я играю в свою игру, поэтому я использую случайное переключение с петлей, как это.
Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(3) + 1;
//picking the right sound to play
switch (randomInt){
case 1:
sound1();
break;
case 2:
sound2();
break;
case 3:
sound3();
break;
}
то же самое для onBackPressed (), вам просто нужно вызвать метод cleanUpMediaPlayer
public void onBackPressed() {
cleanUpMediaPlayer();
.....
}
хороший день для моего друга mistek:)