开发者

Android - Buffering in MediaPlayer

I am using MediaPlayer to play a video in my a开发者_运维知识库pp. The video takes a while to buffer and the videoview is blank for that time.

Is there a way to start the buffering when the user is in the previous screen, so that when he comes to the video playing screen, the video is ready to play?

Thanks Chris


MediaPlayer lets you register an OnPreparedListener and an OnBufferingUpdateListener.


I've not tried it, but you could try calling MediaPlayer.prepareAsync() while the user is on the previous screen, then call .start() when the user moves to the right screen. Not sure where the media player can live during this process... You might need to do this all within one activity that you dynamically update when the user wants to see the video.


like below:

mp.setOnInfoListener(new OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
    if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START) {
        loadingDialog.setVisibility(View.VISIBLE);
    } else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) {
        loadingDialog.setVisibility(View.GONE);
    }
    return false;
}

});


mediaPlayer.setOnInfoListener(new OnInfoListener() {
    @Override
    public boolean onInfo(MediaPlayer mp, int what, int extra) {
        if (what == 703) {
            // Not documented :(
            // See http://stackoverflow.com/a/9622717/435605
            isBuffering = true;
        } else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) {
            isBuffering = false;
        }
        return false;
    }
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜