2013-03-26 1 views
3

Я играю песню с помощью Media Player, используя следующий код,Как определить, как исполняется песня?

mediaPlayer = new MediaPlayer(); 
mediaPlayer.setDataSource("sound_file_filepath"); 
mediaPlayer.prepareAsync(); 
mediaPlayer.setOnPreparedListener(new OnPreparedListener() 
{ 
    @Override 
    public void onPrepared(MediaPlayer mp) 
    { 
     mediaPlayer.start(); 
    } 
}); 

Теперь у меня есть тумблер вид изображения в моем файле .xml, который первым показывает воспроизведение изображения. После нажатия/прикосновения к изображению воспроизведения он начнет воспроизведение песни и заменит изображение стоп-кадрами.

Теперь мой вопрос: как я могу узнать, что мой звук закончил играть? Я очень хорошо знаю метод isPlaying(), он возвращает true, если песня запущена и false, если нет. Но когда & где я должен проверить это условие, чтобы снова отобразить изображение воспроизведения?

ответ

12

Я считаю, что то, как это может помочь,

mediaPlayer.setOnCompletionListener(this); 
// When song is ended then media player automatically called onCompletion method. 
    public void onCompletion(MediaPlayer arg0) 
{ 
    // Write your code 
} 
+0

Спасибо за ответ Marko – Raynold

+0

no problemo, рад, что я мог бы помочь;) –

0

Как OnPrepared Слушатель и есть OnCompletion Слушатель, как показано ниже

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 

     @Override 
     public void onCompletion(MediaPlayer mp) { 
      // TODO Auto-generated method stub 

     } 
    }); 
0

проверки этого один:

mediaPlayer.setOnCompletionListener(new OnCompletionListener() { 
    public void onCompletion(MediaPlayer mp) { 
     Log.i("Completion Listener","Song Complete"); 
    } 
}); 
0

Используйте следующий код синтаксис-

Audio_object=document.getElementById('audio_tag_id'); 
if(Audio_object.currentTime==Audio_object.duration) 
//the audio object has completely played. 

audio_tag_id является идентификатором <audio> -элемент.

0
MediaPlayer mp = new MediaPlayer(); 

mp.setOnCompletionListener(new OnCompletionListener() {  
    @Override 
    public void onCompletion(MediaPlayer mp) { 
     //Do the work after completion of audio 
    } 
});