安卓 - MediaPlayer中的缓冲

3

我正在使用MediaPlayer在我的应用程序中播放视频。视频需要一段时间进行缓冲,此时视频视图为空白。

有没有一种方法可以在用户处于上一个屏幕时开始缓冲,以便当他来到视频播放屏幕时,视频已准备好播放?

谢谢 Chris

4个回答

4

0

像下面这样:

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;
}

});


这似乎没有解决主要问题 - 在视频视图创建之前,从上一个屏幕开始缓冲。 - Simon MᶜKenzie

0

我没有尝试过,但你可以在用户处于前一个屏幕时尝试调用MediaPlayer.prepareAsync(),然后在用户移动到正确的屏幕时调用.start()。不确定媒体播放器在此过程中是否可以存在...您可能需要在用户想要查看视频时动态更新的一个活动中完成所有操作。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接