如何检测歌曲播放完成?

时间:2013-03-26 11:19:24

标签: android audio audio-player android-music-player

我正在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。但是当&我应该在哪里检查这个条件再次显示播放图像?

5 个答案:

答案 0 :(得分:15)

我相信这样的事情会有所帮助,

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

答案 1 :(得分:0)

与OnPrepared Listener一样,你有像下面的OnCompletion Listener

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

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

        }
    });

答案 2 :(得分:0)

检查一下:

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

答案 3 :(得分: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> - 元素的ID。

答案 4 :(得分:0)

MediaPlayer mp = new MediaPlayer();

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