在switch语句中使用Android MediaPlayer播放声音
我试图让我的应用程序在屏幕上显示当前练习时播放声音。我遇到的问题是,一旦播放,声音就会不断重复。我想让媒体播放器播放一次声音。我有一个倒计时也在运行,在改变之前的15秒内,exerciseCount为0。时钟倒数的每一个数字上,声音都在重复。如何让声音只播放一次在switch语句中使用Android MediaPlayer播放声音,android,audio,android-mediaplayer,Android,Audio,Android Mediaplayer,我试图让我的应用程序在屏幕上显示当前练习时播放声音。我遇到的问题是,一旦播放,声音就会不断重复。我想让媒体播放器播放一次声音。我有一个倒计时也在运行,在改变之前的15秒内,exerciseCount为0。时钟倒数的每一个数字上,声音都在重复。如何让声音只播放一次 switch (currentExercise){ case 0 : mp.reset(); mp = MediaPlayer.create(getBaseContext
switch (currentExercise){
case 0 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.lunges);
mp.start();
break;
case 1 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.abdominalcrunches);
mp.start();
break;
case 2 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.pushups);
mp.start();
break;
case 3 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.squats);
mp.start();
break;
case 4 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.rest);
mp.start();
break;
}
您可能希望尝试在交换机周围放置if语句。比如:
if(timer == -1){
switch (currentExercise){
case 0 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.lunges);
mp.start();
break;
case 1 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.abdominalcrunches);
mp.start();
break;
case 2 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.pushups);
mp.start();
break;
case 3 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.squats);
mp.start();
break;
case 4 :
mp.reset();
mp = MediaPlayer.create(getBaseContext(), R.raw.rest);
mp.start();
break;
}
}
可能是您的交换机正在循环