播放声音在switch语句中使用Android MediaPlayer

时间:2014-11-06 22:26:00

标签: android audio android-mediaplayer

当我在屏幕上显示当前练习时,我正试图让我的应用程序播放声音。我遇到的问题是声音一旦播放就会不断重复。我希望媒体播放器播放一次声音。我还有一个倒计时器也在运行,而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;

      }

1 个答案:

答案 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;

  }
  }

您的交换机可能正在循环播放。