如何在Android媒体播放器中获得每次播放的回调

Par*_*mar 6 android android-mediaplayer

我正在使用Android媒体播放器在我的应用程序中播放视频.我希望在实际播放5秒后显示一个按钮来跳过视频.最初我展示了"5s跳过视频".然后,当播放器继续播放视频时,它将继续使用"跳过4s视频"等按钮更新按钮文本,依此类推.最后它将显示"Skip Video".

我不知道如何获得每一秒的回调.因为我不更新按钮文本,当播放器缓冲或播放器暂停时.

到目前为止我尝试过:

public void onBufferingUpdate(MediaPlayer mp, int percent) {
    // TODO Auto-generated method stub
    updateSkipButtonUI();

}
Run Code Online (Sandbox Code Playgroud)

但是,当我在某些设备上测试时,onBufferingUpdate方法会在播放器播放视频时每秒调用一次.但是在某些设备上,一旦缓冲百分比达到100%,它就不会被调用.

我也试过了

mMediaPlayer.setOnInfoListener(this);
    @Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
    // TODO Auto-generated method stub
    if(what == MediaPlayer.MEDIA_INFO_BUFFERING_START)
    {
        //Player started buffering. Player internally pauses . 
        stopTimerToUpdateSkipButton();
    }
    else if(what == MediaPlayer.MEDIA_INFO_BUFFERING_END)
    {
        // Buffering has ended . Content is ready to play.
        startTimerToUpdateSkipButton();
    }

    return what == MediaPlayer.MEDIA_INFO_BUFFERING_START || what == MediaPlayer.MEDIA_INFO_BUFFERING_END;
}
Run Code Online (Sandbox Code Playgroud)

但有时也会调用OnInfo方法.有时它不会被调用.

我不知道还有什么可以尝试的.请帮忙.