3

我正在使用以下代码在 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。但是我应该何时何地检查此条件以再次显示播放图像?

4

5 回答 5

19

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

mediaPlayer.setOnCompletionListener(this);
// When song is ended then media player automatically called onCompletion method.
    public void onCompletion(MediaPlayer arg0) 
{
    // Write your code
}
于 2013-03-26T11:21:25.867 回答
0

使用以下代码语法 -

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

audio_tag_id是 - 元素的 id <audio>

于 2013-09-26T13:59:33.767 回答
0

像 OnPrepared 侦听器一样,您有 OnCompletion 侦听器,如下所示

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

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

        }
    });
于 2013-03-26T11:22:21.613 回答
0

检查这个:

mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
        Log.i("Completion Listener","Song Complete");
    }
});
于 2013-03-26T11:25:32.310 回答
0
MediaPlayer mp = new MediaPlayer();

mp.setOnCompletionListener(new OnCompletionListener() {     
    @Override
    public void onCompletion(MediaPlayer mp) {
        //Do the work after completion of audio
    }
});
于 2014-01-31T12:41:06.283 回答