大海全是水赴蝇,視頻全是坑
前段時間公司讓我調(diào)研視頻播放迎罗,目前輪子較多片仿,有B站的IjkPlayer,還有g(shù)oogle的ExoPlayer纹安。他們兩個都很強大,因為他們較重厢岂,然后我們要做比較簡單的播放光督,所以就是用了系統(tǒng)的MediaPlayer+surfaeView來做 ,
因為要做緩存塔粒,所以緩存就用了 目前比較常用的AndroidVideoCache
傳送門:https://github.com/danikula/AndroidVideoCache
先介紹一下AndroidVideoCache
AndroidVideoCache是一個音視頻緩存庫,用于支持VideoView/MediaPlayer, ExoPlayer,IJKPlayer等播放器的邊下載邊播放卒茬。
照github列出支持的特性如下:
1、音視頻播放的時候會將多媒體數(shù)據(jù)存儲于磁盤上面
2扬虚、如果播放的數(shù)據(jù)已經(jīng)緩存努隙,支持離線播放
3球恤、支持部分加載(我就非常想知道這個是什么 ~~~~ 有誰知道能告訴我)
4辜昵、可以設(shè)置緩存配置,如緩存的大小堪置,允許最大的緩存文件數(shù)量
5、對于同一個url地址請求源舀锨,允許有多個請求客戶端鏈接(見下文代碼中紅色標(biāo)注)
6宛逗、不支持DASH, SmoothStreaming, HLS之類的流媒體協(xié)議
7坎匿、不了解的自行百度 文章特別多
前面說的都是廢話雷激,現(xiàn)在說一下他們結(jié)合我發(fā)現(xiàn)的一個坑。
這個問題難了我好久 屎暇,對著源碼一頓調(diào)試,知道了問題發(fā)生在那里 根悼,但是不知道原因是什么。
開發(fā)測試過程中發(fā)現(xiàn)剩彬,在MediaPlayer的seekTo之后AndroidVideoCache的監(jiān)聽就不調(diào)用了矿卑,(喉恋,誰知道能告訴我為什么)。
我把MediaPlayer換成IJKPlayer绍坝,就可以了。(mmp)