您的位置:首页 > 其它

视频在滑动列表中的异步缓存和播放

2016-04-01 15:29 399 查看
根据网上看的文章写的

网络视频的异步缓存

视频的缓存其实跟图片缓存大致是一样的,现在图片缓存框架很多,但是根本原理都是网络下载+内存缓存+本地缓存这三大块组成。而视频的缓存只需要跳过内存缓存就可以了,当发视频文件未下载时就去下载并本地缓存,下次就直接从本地缓存读取视频文件信息,所以基于图片缓存框架不难实现视频文件的缓存功能。

这里我采用了Glide来实现视频缓存,Glide不仅支持图片缓存还支持对普通文件缓存,所以使用Glide可以很简单的就能实现视频文件的缓存

基于TextureView的视频播放控件

Android原生提供了一个视频播放控件 - VideoView,但VideoView是基于SurfaceView实现的,SurfaceView会单独一个窗口用来绘制,它不在View hierachy中,显示也不受View的属性控制,不能进行平移,缩放等变换,也难以放在ListView或者ScrollView中,一些View中的特性也无法使用。

为了弥补SurfaceView的不足,Android在4.0中加入了TextureView,它并没有创建一个单独的窗口用来绘制,这使得它可以像一般的View一样执行一些变换操作,设置透明度等,也很方便的放在其它ViewGroup中

所以要在ListView或者RecyclerView中播放视频,我们就需要实现基于TextureView的VideoView,实现代码参考ViewVideo就可以了

其次我们要考虑一下,视频的缓存问题,视频的缓存其实跟图片缓存大致是一样的,现在图片缓存框架很多,但是根本原理都是网络下载+内存缓存+本地缓存这三大块组成。而视频的缓存只需要跳过内存缓存就可以了,当发视频文件未下载时就去下载并本地缓存,下次就直接从本地缓存读取视频文件信息,所以基于图片缓存框架不难实现视频文件的缓存功能。

于是我去看了下glide,这是一个google提供的图片加载类。

如果想看具体的介绍,这里有glide详细介绍,那么glide如何进行视频的缓存处理呢,看了一会也没发现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: