当我在屏幕上显示当前练习时,我正试图让我的应用程序播放声音。我遇到的问题是声音一旦播放就会不断重复。我希望媒体播放器播放一次声音。我还有一个倒计时器也在运行,而exerciseCount在更改前为15秒。声音在时钟倒计时的每个数字上不断重复。如何让声音只播放一次?
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;
}
答案 0 :(得分:0)
您可能想尝试在您的交换机周围添加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;
}
}
您的交换机可能正在循环播放。