我尝试流式传输(例如:http://server.com/video.mp4)
当我使用标准谷歌媒体播放器(来自android软件包的VideoView)并注册onBufferingUpdateListener时,我得到了缓冲区百分比,它指的是洞视频的下载状态。这个播放器还有一个加载视图,我可以看到缓冲区状态。 此缓冲区百分比和视图显示我已下载了多少视频。
现在,当我使用Vitamio播放器时,onBufferingUpdateListener会在几秒钟后向我显示99%的缓冲,并且也没有加载视图。当我暂停播放时,它会立即停止缓冲,而不是像谷歌视频那样继续缓冲。如果你有一个慢的http流,这是非常有用的。
有没有办法让vitamio-videoplayer以与Google视频播放器相同的方式缓存视频文件?
谢谢你 丹尼尔答案 0 :(得分:1)
抱歉,我将该问题发布为错误的用户。这是我试过的答案:
从android.widget内部和从io.vov.vitamio.widget(vitamio - 播放大多数视频格式)包中具有相同结构的VideoView(Android默认 - 只播放少量视频格式)。在两者中,您都可以注册一个以百分比形式返回bufferstate的OnBufferingUdateListener:videoview.setOnBufferingUpdateListener(new io.vov.vitamio.MediaPlayer.OnBufferingUpdateListener() {
public void onBufferingUpdate(io.vov.vitamio.MediaPlayer mp, int i) {
Log.v(TAG, "Buffer percentage done: "+i);
}
});
或使用Android默认的VideoView:
videoview.setOnBufferingUpdateListener(new android.media.MediaPlayer.OnBufferingUpdateListener() {
public void onBufferingUpdate(android.media.MediaPlayer mp, int i) {
Log.v(TAG, "Buffer percentage done: "+i);
}
});
如果我使用android.widget.VideoView缓冲区百分比缓慢增加,直到达到100% - 视频文件已完全下载。当我按下暂停按钮时,它会继续更新BufferingUpdate。
当我使用io.vov.vitamio.widget.VideoView时,百分比在几秒钟内达到100%。然后视频开始,OnBufferingUpdateListener永远不会被再次调用(当我调用getBufferPercentage它总是99%。这似乎是原因)。正如我所说:当我按下暂停按钮时似乎停止缓冲。
我认为缓冲在维生素中的作用不同。但那是废话。特别是当我从网络流式传输视频并且视频数据速率高于下载速度时,我需要通过按暂停来预播放视频,并等到已下载足够的数据以便顺利观看。希望你明白我的意思。谢谢