iOS AVPlayer 視頻緩存

? ? ? ? 最近的項目中用到了視頻播放的緩存技術(shù)公给,通俗的講就是視頻邊下載邊播放 已經(jīng)下載的部分需要緩存起來,下次播放或者快進蜘渣、快退或者無網(wǎng)絡時到播放到緩存的部分可以直接播放不用下載淌铐。?

? ? ? 找了一下相關(guān)的技術(shù)發(fā)現(xiàn)在iOS中官方支持的比較靈活能夠自定義的也就是AVPlayer了,但是它所能支持的格式比不多蔫缸,還好我的項目中夠用了腿准。當然還有其他的方式,比如Ijkplayer 但是它本身比不支持緩存拾碌,需要自己去添加吐葱,相比之下的難度大了不少。不過AVPlayer 也有先天的不足校翔,后面會講到弟跑。

在使用AVPlayer 之前我在網(wǎng)上找了很多的資料,可惜沒有找到一個可以處理緩存碎片的方法防症。只能是自己去寫一個了孟辑。緩存的難點在于碎片化,不是連續(xù)的中間需要去請求數(shù)據(jù)告希。要順序操作下來扑浸。

最初我實際操作了一段時間發(fā)現(xiàn)只要完成下載后的數(shù)據(jù) 跟碎片數(shù)據(jù)段的融合,和對碎片數(shù)據(jù)段的讀區(qū)兩個算法這個方案就解決了燕偶,現(xiàn)在回頭看看真是too young too simple 喝噪,后面AVPlayer 播放不流暢的坑耗費了我更多的時間。

當然 上面提到的兩套算法是核心指么,關(guān)于如何對AVPlayer 使用緩存酝惧,不是本文介紹的重點請先熟悉它的流程榴鼎。 首先如果沒有緩存那就直接創(chuàng)建了比較簡單。 把loader 下發(fā)的request 根據(jù) 它請求的區(qū)間段 利用前面提到的算法晚唇,返回一個 數(shù)組巫财,里面是 @{start,end,isNull} 字典 數(shù)據(jù)的區(qū)間段,表明數(shù)據(jù)段的開始哩陕,截止平项,和是否儲存,

然后加入到一個隊列中(NSOperation)悍及,每一個數(shù)據(jù)段都創(chuàng)建一個NSOperation 闽瓢,在NSOperation 中對已經(jīng)下載的部分把數(shù)據(jù)取出來直接返回給request隶症。對于沒有下載的去下載醋界,下載完成后用算法對碎片數(shù)據(jù)進行融合伴找。

以上就是最基本的流程坯癣,比較讓人頭疼的是AVPlayer 的特性,比如視頻已經(jīng)是完整時拖刃,它下發(fā)的request 請求的是整個視頻的數(shù)據(jù)薯演,然后一次性把這些數(shù)據(jù)返回給它贸诚,會讓播放器卡住 不再播放耻姥∠郏可能是因為數(shù)據(jù)量比較大。AVPlayer 對播放器的狀態(tài) 提示不是很清楚咏闪,而且很有限曙搬。

?好了先寫這些 ? 這是我項目的地址 ?感覺有用的記得給個星摔吏!

https://github.com/taohailong/AVPlayerCache.git

用pod添加

pod 'AVPlayerCacheLibrary', :git => 'https://github.com/taohailong/AVPlayerCache.git'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸽嫂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子征讲,更是在濱河造成了極大的恐慌据某,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,496評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诗箍,死亡現(xiàn)場離奇詭異癣籽,居然都是意外死亡,警方通過查閱死者的電腦和手機滤祖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,187評論 3 385
  • 文/潘曉璐 我一進店門筷狼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匠童,你說我怎么就攤上這事埂材。” “怎么了汤求?”我有些...
    開封第一講書人閱讀 157,091評論 0 348
  • 文/不壞的土叔 我叫張陵俏险,是天一觀的道長严拒。 經(jīng)常有香客問我,道長竖独,這世上最難降的妖魔是什么裤唠? 我笑而不...
    開封第一講書人閱讀 56,458評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮莹痢,結(jié)果婚禮上种蘸,老公的妹妹穿的比我還像新娘。我一直安慰自己竞膳,他們只是感情好劈彪,可當我...
    茶點故事閱讀 65,542評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著顶猜,像睡著了一般沧奴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上长窄,一...
    開封第一講書人閱讀 49,802評論 1 290
  • 那天滔吠,我揣著相機與錄音,去河邊找鬼挠日。 笑死疮绷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的嚣潜。 我是一名探鬼主播冬骚,決...
    沈念sama閱讀 38,945評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼懂算!你這毒婦竟也來了只冻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,709評論 0 266
  • 序言:老撾萬榮一對情侶失蹤计技,失蹤者是張志新(化名)和其女友劉穎喜德,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垮媒,經(jīng)...
    沈念sama閱讀 44,158評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡舍悯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,502評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了睡雇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萌衬。...
    茶點故事閱讀 38,637評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖它抱,靈堂內(nèi)的尸體忽然破棺而出秕豫,到底是詐尸還是另有隱情,我是刑警寧澤抗愁,帶...
    沈念sama閱讀 34,300評論 4 329
  • 正文 年R本政府宣布馁蒂,位于F島的核電站呵晚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏沫屡。R本人自食惡果不足惜饵隙,卻給世界環(huán)境...
    茶點故事閱讀 39,911評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沮脖。 院中可真熱鬧金矛,春花似錦、人聲如沸勺届。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,744評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽免姿。三九已至饼酿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胚膊,已是汗流浹背故俐。 一陣腳步聲響...
    開封第一講書人閱讀 31,982評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留紊婉,地道東北人药版。 一個月前我還...
    沈念sama閱讀 46,344評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像喻犁,于是被迫代替她去往敵國和親槽片。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,500評論 2 348

推薦閱讀更多精彩內(nèi)容