安卓视频模块

Android视频缓存之AndroidVideoCache(一)

2019-12-27  本文已影响0人  极客匠

AndroidVideoCache主要是做视频缓存管理功能,支持边下边播,离线播放和缓存管理等。用MediaPlayer可以支持在线播放和播放本地资源。但是不支持缓存,因此很消耗用户流量和服务器流量。这时候AndroidVideoCache就可以派上用场了。

1. 基本原理

AndroidVideoCache通过代理的策略将我们的网络请求代理到本地服务,本地服务决定数据是从缓存获取还是发起网络请求,如果需要发起网络请求就先向本地写入数据,再从本地服务获取数据给VideoView,从而做到数据的复用。

2. 主要内容介绍

HttpProxyCacheServer是AndroidVideoCache对外的接口,通过这个类和Videoview联系起来,判断本地是否有缓存,有的话直接返回本地文件;没有就建立一个和url对应的HttpProxyCacheServerClients处理本次请求,请求工作交给Source接口,缓存工作交给Cache接口,文件缓存是用LRU算法实现,可以根据文件大小或者文件个数管理缓存。

CacheListener是缓存本地成功后回调的接口,用于更新进度相关的UI。

3.使用方法

  1. 首先导包:
compile 'com.danikula:videocache:2.7.1'
  1. 创建代理
HttpProxyCacheServer proxy = getProxy();
   String proxyUrl = proxy.getProxyUrl(VIDEO_URL);
   videoView.setVideoPath(proxyUrl);
上一篇 下一篇

猜你喜欢

热点阅读