2013-08-15 4 views
2

Я делаю приложение, которое использует звуковые эффекты. Я хотел бы знать, как я могу обнаружить, когда звук закончил игру и вызвал событие.Запуск события, когда mediaPlayer останавливается

я попытался это:

player = new MediaPlayer(); 
    if (player != null) { 
     player.reset(); 
     player.release(); 
    } 

    player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
     @Override 
     public void onCompletion(MediaPlayer mediaPlayer) { 

      sonar.setBackgroundResource(R.drawable.sonar_off); 
      stopPlay(); 
     } 
    }); 

     if(state==1){ 
      player = MediaPlayer.create(this, R.raw.sonar_slow); 
     }else if(state==2){ 
      player = MediaPlayer.create(this, R.raw.sonar_medium); 
     }else if(state==3){ 
      player = MediaPlayer.create(this, R.raw.sonar_fast); 
     } 
     try{ 
      player.prepare(); 
      } catch (IllegalStateException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
      } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
      } 
     player.start(); 
+0

Вы знаете длину звуковой файл? –

+0

У меня есть несколько аудиофайлов разной длины – mremremre1

+0

Вы должны действительно прочитать [документацию] (http://developer.android.com/reference/android/media/MediaPlayer.html#setOnCompletionListener (android.media.MediaPlayer.OnCompletionListener)) перед публикацией. – keyser

ответ

9

Вы можете установить OnCompleteListener() для объекта игрока. Код для этого является:

mPlayer.setOnCompletionListener(new OnCompletionListener() 
{ 
    @Override 
    public void onCompletion(MediaPlayer mp) 
      { 
       "your code comes here" 
      } 
}); 

здесь MPLAYER является объектом MediaPlayer, который в настоящее время работает ..

0

Есть несколько способов, чтобы играть звуки, если вы используете класс MediaPlayer можно зарегистрировать MediaPlayer.OnCompletionListener

+0

Он/она указал «MediaPlayer» в теге, поэтому я предполагаю, что это сработает – keyser

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