封裝一個好用的視頻播放器
一:簡介
AVFoundation是蘋果在iOS和OS X系統中用於處理基於時間的媒體數據的Objective-C框架. 供使用者來開發媒體類型的應用程序。
上圖是iOS系統下媒體應用的結構層. AVKit框架用於簡化媒體應用的創建過程,如果你只需要看電影,那麼使用這個就可以了, UKit可以支持簡單的錄製功能 . 而更多功能需要低層級框架支持.下面簡單介紹下AVFoundation內最主要的支撐框架和其提供的功能。
CoreAudio : 處理所有音頻事件.是由多個框架整合在一起的總稱,為音頻和MIDI內容的錄製,播放和處理提供相應介面.設置可以針對音頻信號進行完全控制,並通過Audio Units來構建一些複雜的音頻處理.有興趣的可以單獨了解一下這個框架。
CoreMedia: 是AVFoundation所用到低層級媒體管道的一部分.提供音頻樣本和視頻幀處理所需的低層級數據類型和介面。
CoreAnimation: 動畫相關框架, 封裝了支持OpenGL和OpenGL ES功能的ObjC各種類. AVFoundation可以利用CoreAnimation讓開發者能夠在視頻的編輯和播放過程中添加動畫和圖片效果。
下面我就和大家詳細的分享一下,如何使用AVFoundation來實現一個好用的視頻播放器。如果好用或者對你有所幫助,不要忘了關注點個贊呦!!!
二:實現思路分析
視頻控制界面實現
用於視頻顯示的View創建
視頻數據下載器FBYVideoDownload創建
播放、暫停、橫豎屏操作方法實現
監聽播放進度
控制存儲緩衝範圍
拖動滑塊,控制快進快退
定義臨時文件路徑
定義緩存文件夾路徑
發起視頻路徑網路請求方法
播放結束設置
前後視頻播放控制
三:實現源碼分析
根據實現思路分析,一步步進行編碼實現:
1. 視頻控制界面實現
2. 用於視頻顯示的View創建
3. 視頻數據下載器FBYVideoDownload創建
4. 播放、暫停、橫豎屏操作方法實現
5. 監聽播放進度
6. 監聽播放器的狀態
7. 監聽當前的緩衝進度
8. 監聽到當前沒有緩衝數據
9. 控制存儲緩衝範圍
10. 拖動滑塊,控制快進快退
11. 定義臨時文件路徑
12. 定義緩存文件夾路徑
13. 發起視頻路徑網路請求方法
14. 播放結束設置
15. 前後視頻播放控制
五:項目實際使用
1. 下載demo
下載demo,將demo中FBYVideoData文件夾引入項目中。
2. 在項目中引入FBYVideoPlayer並繼承FBYVideoPlayerDelegate代理
3. 初始化創建基層view
4. 初始化調用視頻播放方法
5. 初始化調用視頻播放方法
本篇文章demo源碼:
demo源碼
本篇已同步到個人博客:FBY展菲
TAG:網羅開發 |