iOS AVPlayer视频边加载边播并缓存

实现视频缓存的方法有很多,常规的方法是创建AVResourceManager实现AVResourceLoader协议,添加loadingRequest到网络文件加载器,然后各种协议各种代理各种判断,复杂,没理清楚容易出错。这种方式的好处就是可控性强,能方便且准确的添加和隐藏loading动画。
AVPlayer可以通过视频的本地路径或者网络路径URL-->AVAsset -->AVPlayerItem -->AVPlayer来初始化,然后我们可以通过利用KVO来监听这个AVPlayerItem的几个关键字status、loadedTimeRanges、playbackBufferEmpty、playbackLikelyToKeepUp(播放状态、加载进度、缓冲不足播放、缓存足够播放)来控制播放器的Loading动画、本地缓存操作。具体看 demo

PS:这种处理方式的特点是视频全部加载完才能本地储存(加载完100%后playItem完整,然后把playItem转换成想要的视频格式存入本地),没办法先缓冲部分然后再断点续传,适合短视频

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容