Android上增加对M3U8文件下载的功能

最近给一个客户提了一个需求,想对他们网站的视频做一个下载的功能,希望他的App能够缓存视频功能,然后用户可以在下次快速播放视频。

一开始接到这个需求,自然是去搜罗一遍,有没有可靠稳定的第三方资源。(其实几年前,自己在安卓App上实现过m3u8的下载功能,只不过当时并没有想到,做成通用的,放在github上)

最终在github上找到一个不错的第三方组件(https://github.com/huangdali/M3U8Manger),对m3u8的下载封装的也不错,使用起来也很方便。但是这个库有一个小缺陷,就是对带有key加密的m3u8支持的不够好,而我的客户的视频,又都是带key加密的m3u8,这个时候,便有了fork一个分支,增加支持key加密m3u8下载的想法。

github地址:https://github.com/sujudz/M3U8Manger

并没有在原有的项目上改动太多,这里查看 原说明文档.

只是根据项目增加了几个点,方便大家查阅。

1、增加key的下载并支持不下载重复key文件,多数m3u8文件的key其实多为一个文件,增加下载速度

2、下载后的m3u8 ts片段不进行合并,存放在一个目录,并生成一个m3u8播放文件,里面包含加密的key

附上一个有key加密的m3u8文件内容信息,如果你要下载的m3u8也是类似这样的格式,那么这个组件你就可以派上用场了。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:11
#EXT-X-ALLOW-CACHE:YES
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="http://demo.edusoho.com/hls/3260/clef/8a589ec85ca411ea8fe900163e097a13",IV=0x546d43f31d596ee16a5326af04696f3f
#EXTINF:10.080,
http://demo-yun-pub.pub.qiqiuyun.net/1/5824cbb0b64d4661bf1d3083ae07b4c8/lqupwxWfb_WbgCq1-merged-sd_seg_0_ehls_19bab5?schoolId=1&fileGlobalId=5824cbb0b64d4661bf1d3083ae07b4c8
#EXT-X-KEY:METHOD=AES-128,URI="http://demo.edusoho.com/hls/3260/clef/8a589ec85ca411ea8fe900163e097a13",IV=0x4b51e57135896959f407e90f35894418
#EXTINF:10.000,
#EXT-X-ENDLIST

你可能感兴趣的:(安卓)