2014-11-06 2 views
1

Я пытаюсь заставить свое приложение воспроизводить звуки, когда текущее упражнение отображается на экране. Проблема, с которой я сталкиваюсь, заключается в том, что звук продолжает повторяться после его воспроизведения. Я хочу, чтобы медиаплеер воспроизводил звук один раз. У меня также включен таймер обратного отсчета, а значение exerciseCount равно 0 в течение 15 секунд перед изменением. Звук продолжает повторяться на каждом номере, который отсчитывает часы. Как заставить звук играть только один раз?Воспроизведение звука с помощью Android MediaPlayer в операторе switch

 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

Возможно, вы захотите попробовать поставить оператор 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; 

    } 
    } 

Возможно, ваш коммутатор зациклен.

+0

Благодаря @Klynicol это решило мою проблему – user3569664

Смежные вопросы