Android 如何检测歌曲播放是否完成?

Android 如何检测歌曲播放是否完成?,android,audio,audio-player,android-music-player,Android,Audio,Audio Player,Android Music Player,我在媒体播放器的帮助下用以下代码播放一首歌 mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource( "sound_file_filepath" ); mediaPlayer.prepareAsync(); mediaPlayer.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer

我在媒体播放器的帮助下用以下代码播放一首歌

mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource( "sound_file_filepath" );
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new OnPreparedListener() 
{
    @Override
    public void onPrepared(MediaPlayer mp) 
    {
        mediaPlayer.start();
    }
}); 
现在,我的.xml文件中有一个切换类型的图像,它首先显示一个播放图像。单击/触摸播放图像后,它将启动歌曲并将图像替换为停止图像


现在我的问题是,我如何知道我的声音已经播放完毕?我非常了解isplay()方法,如果歌曲正在运行,它将返回true;如果歌曲没有运行,它将返回false。但是,我应该在何时何地检查此条件以再次显示播放图像?

我相信这样做会有所帮助

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

就像准备好的监听器一样,你有下面这样的完成监听器

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

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

        }
    });
勾选这个:

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

使用以下代码语法-

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

audio\u tag\u id
-元素的id。

谢谢您的回答
MediaPlayer mp = new MediaPlayer();

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