【问题标题】:How to detect song playing is completed?如何检测歌曲播放完成?
【发布时间】:2013-03-26 11:19:23
【问题描述】:
我正在使用以下代码在媒体播放器的帮助下播放歌曲,
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。但是我应该何时何地检查此条件以再次显示播放图像?
【问题讨论】:
标签:
android
audio
audio-player
android-music-player
【解决方案1】:
我相信这样的事情会有所帮助,
mediaPlayer.setOnCompletionListener(this);
// When song is ended then media player automatically called onCompletion method.
public void onCompletion(MediaPlayer arg0)
{
// Write your code
}
【解决方案2】:
像 OnPrepared 监听器一样,你有 OnCompletion 监听器,如下所示
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
}
});
【解决方案3】:
检查这个:
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
Log.i("Completion Listener","Song Complete");
}
});
【解决方案4】:
使用以下代码语法-
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。
【解决方案5】:
MediaPlayer mp = new MediaPlayer();
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
//Do the work after completion of audio
}
});