ios 網絡視頻播放---分解ZFPlayer


 

核心1.  AVPlayerLayer 用於顯示視頻

核心2.  監聽播放相關屬性

A.  status:

AVPlayerStatusReadyToPlay---視頻就可以播放了

AVPlayerStatusFailed---視頻加載失敗,這時可以通過self.player.error.description屬性來找出具體的原因

AVPlayerItemStatusUnknown----未知原因

B.  loadedTimeRanges:當前視頻緩存情況(緩沖的進度),監聽此屬性可以在UI中更新緩沖進度,也是很有用的一個屬性

C.  playbackBufferEmpty:當前視頻緩存是否充足,若緩沖太少繼續緩沖,動畫繼續。

D.  playbackLikelyToKeepUp:和playbackBufferEmpty是一對,用於監聽緩存足夠播放的狀態,由於 AVPlayer 緩存不足就會自動暫停,所以緩存充足了需要手動播放,才能繼續播放

核心3.  addPeriodicTimeObserverForInterval 更新頻率,用於更新當前播放進度

核心4. 監聽 AVPlayerItemDidPlayToEndTimeNotification 視頻是否播放完畢

核心5. 緩存不夠繼續緩存 

核心6.  視頻總時間CMTimeGetSeconds(self.player.currentItem.duration)

核心7. 視頻播放當前時間 CMTimeGetSeconds(self.playerItem.currentTime)

核心8. 快進     [_player seekToTime:seekTime toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:completionHandler];

 

緩存動畫觸發機制

startAnimation:

1.初始進入啟動加載

2.playbackBufferEmpty=YES,緩存為空不足以支撐繼續播放

stopAnimating

1. 播放失敗 AVPlayerItemStatusFailed

2. 可以繼續播放的狀態下 playbackLikelyToKeepUp = YES

3. 視頻加載成功,准備播放  AVPlayerItemStatusReadyToPlay

 

demo地址:https://github.com/MadahaCEO/VideoDemo

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM