VideoPreload
对AndroidVideoCache开源库的补充,支持预加载短视频数据的能力。
AndroidVideoCache只支持边下边播以及缓存的能力,但是一般情况下,为了短视频首帧能秒出,以MP4为例,如果不提前预加载的数据的情况下,播放器需要先下载MP4格式的头部数据以及几帧数据之后才开始渲染,这其中无疑下载的耗时最大的决定了首帧出现的时间,从而在秒出效果上是有影响的。因此提前做预加载就显得有必要。
几个重要的类
考虑到一种场景如feed信息流中就不乏存在短视频,在点击某个短视频进入全屏页面的时候,一般也像抖音那样可以上下滑动列表的全屏列表页。
因此VideoPreload库涉及几个类:
VideoPreLoadFuture:每个需要用到短视频列表的页面需要初始化, 后续拿着该实例进行相应操作(如下两个方法)
/**
* @param context
* @param preloadBusId 每个页面对应一个preloadBusId
/
public VideoPreLoadFuture(Context context, String preloadBusId)
// 增量添加视频列表
public void addUrls(List urls);
// 全量添加视频列表
public void updateUrls(List urls);
PreloadManager: 预加载VideoPreLoadFuture能力管理类
// 为方便管理,使用者可通过preloadBusId获取VideoPreLoadFuture实例,可选调用