2013-03-26 166 views
3

我玩與媒體播放器的使用下面的代碼的幫助一首歌,如何檢測歌曲播放完成?

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 2013-03-26 11:26:30

+0

沒問題,很高興我能幫到;) – 2013-03-26 11:27:04

0

像OnPrepared監聽u有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> -element的編號。

0
MediaPlayer mp = new MediaPlayer(); 

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