大海全是水,视频全是坑
前段时间公司让我调研视频播放,目前轮子较多,有B站的IjkPlayer,还有google的ExoPlayer。他们两个都很强大,因为他们较重,然后我们要做比较简单的播放,所以就是用了系统的MediaPlayer+surfaeView来做 ,
因为要做缓存,所以缓存就用了 目前比较常用的AndroidVideoCache
传送门:https://github.com/danikula/AndroidVideoCache
先介绍一下AndroidVideoCache
AndroidVideoCache是一个音视频缓存库,用于支持VideoView/MediaPlayer, ExoPlayer,IJKPlayer等播放器的边下载边播放。
照github列出支持的特性如下:
1、音视频播放的时候会将多媒体数据存储于磁盘上面
2、如果播放的数据已经缓存,支持离线播放
3、支持部分加载(我就非常想知道这个是什么 ~~~~ 有谁知道能告诉我)
4、可以设置缓存配置,如缓存的大小,允许最大的缓存文件数量
5、对于同一个url地址请求源,允许有多个请求客户端链接(见下文代码中红色标注)
6、不支持DASH, SmoothStreaming, HLS之类的流媒体协议
7、不了解的自行百度 文章特别多
前面说的都是废话,现在说一下他们结合我发现的一个坑。
这个问题难了我好久 ,对着源码一顿调试,知道了问题发生在那里 ,但是不知道原因是什么。
开发测试过程中发现,在MediaPlayer的seekTo之后AndroidVideoCache的监听就不调用了,(,谁知道能告诉我为什么)。
我把MediaPlayer换成IJKPlayer,就可以了。(mmp)