2013-03-26 93 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 
    } 
});