视频在滑动列表中的异步缓存和播放
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如何进行视频的缓存处理呢,看了一会也没发现。
网络视频的异步缓存
视频的缓存其实跟图片缓存大致是一样的,现在图片缓存框架很多,但是根本原理都是网络下载+内存缓存+本地缓存这三大块组成。而视频的缓存只需要跳过内存缓存就可以了,当发视频文件未下载时就去下载并本地缓存,下次就直接从本地缓存读取视频文件信息,所以基于图片缓存框架不难实现视频文件的缓存功能。
这里我采用了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如何进行视频的缓存处理呢,看了一会也没发现。
相关文章推荐
- OC语言实现从小到大冒泡排序
- 2016.4.1 启动war包中遇到的问题和没有解决的问题
- linux权限集中管理和行为日志审计
- SDWebImage
- USB接口的例子
- iOS开发 ☞ UILable详解
- iptables
- apache禁止公网IP访问的配置
- CentOS 7 基础配置与安装Webmin
- ubuntu 14.04 编译安装 nginx
- 字符编码常识及问题解析
- java 中,"=="和 "equals"的区别
- 安卓-回调函数和钩子函数
- 写博客还是有必要的
- Java Web Application使Session永不失效(利用cookie隐藏登录)
- 机器学习基础(三十八) —— 从几率到逻辑斯函数
- IOS把url中含有的中文字符转化为UTF8编码方法
- 正规方程 Normal Equation
- static的作用
- 面对自己:如何让自己成为真正的程序员