實現(xiàn)視頻緩存的方法有很多戒良,常規(guī)的方法是創(chuàng)建AVResourceManager實現(xiàn)AVResourceLoader協(xié)議,添加loadingRequest到網(wǎng)絡(luò)文件加載器慢逾,然后各種協(xié)議各種代理各種判斷醋闭,復(fù)雜镰绎,沒理清楚容易出錯。這種方式的好處就是可控性強(qiáng)耍群,能方便且準(zhǔn)確的添加和隱藏loading動畫义桂。
AVPlayer可以通過視頻的本地路徑或者網(wǎng)絡(luò)路徑URL-->AVAsset -->AVPlayerItem -->AVPlayer來初始化找筝,然后我們可以通過利用KVO來監(jiān)聽這個AVPlayerItem的幾個關(guān)鍵字status、loadedTimeRanges慷吊、playbackBufferEmpty袖裕、playbackLikelyToKeepUp(播放狀態(tài)、加載進(jìn)度溉瓶、緩沖不足播放急鳄、緩存足夠播放)來控制播放器的Loading動畫、本地緩存操作堰酿。具體看 demo
PS:這種處理方式的特點是視頻全部加載完才能本地儲存(加載完100%后playItem完整疾宏,然后把playItem轉(zhuǎn)換成想要的視頻格式存入本地),沒辦法先緩沖部分然后再斷點續(xù)傳触创,適合短視頻