iOS使用AVPlayer,播放本地,在線音頻

AVPlayer屬於AVFoundation框架,不僅能夠播放音頻,還可以播放視頻,支持本地和網鏈,更加接近底層,定制也更加靈活。

為什麼要寫這篇文章呢?其因有二:

  • 1、github上有很多播放音頻的優秀三方的框架,很方便,也很容易集成,但問題也比較多,底層都是C或者C++,要修改一個小BUG,難度系數比較高,例如:

StreamingKit

FreeStreamer

AudioStreamer

AFSoundManager

DOUAudioStreamer

以上,除瞭FreeStreamer,其他的幾個框架都使用過,其中StreamingKit和DOUAudioStreamer在線上版本使用過,性能都比較不錯。

DOUAudioStreamer 唯一的問題就是在使用緩存繼續播放,有問題,並且不支持seekToTime,這句話的意思呢就是,整個音頻緩沖完畢才能繼續播放,如果快進的時候整個音頻沒有緩沖完成(網絡較差的時候,音頻較大),這個就比較坑瞭。StreamingKit 這個有個問題就是緩沖的進度無法回調,無法獲取,源碼都是互斥鎖,自旋鎖,看著各種暈菜,有個問題就是,可能是我使用的姿勢不對,緩存文件比較大,但是在沙盒又找不見這個文件的存在,無法刪除,API也沒有提供對應的接口,在手機的空間存儲中查看,占用空間很大。2、這些框架很久都沒人維護,面對現在的產品需求,不能滿足。

基於以上原因,結合自己項目中出現的問題,決定用強悍的AV框架中AVPlayer,自己寫一個, 功能如下:

不要求實現流播

能支持緩存播放

有緩存進度回調

可以清除緩存文件即可

AVPlayer基礎用法介紹

以前做視頻開發,在播放視頻時,隻是簡單的播放一個視頻,而不需要考慮播放器的界面。

1、iOS9.0 之前使用 MPMoviePlayerController, 或者自帶一個 view 的 MPMoviePlayerViewController。2、iOS9.0 之後,可以使用新的API AVPictureInPictureController, AVPlayerViewController。3、甚至使用WKWebView。以上播放器都是系統提供,優點:封裝性很強,使用簡單方便。缺點:自由定制度太低。所以在我們需要自己定制播放器的時候,就需要時用AVPlayer。 AVPlayer繼承NSObject,所以單獨使用AVPlayer時無法顯示視頻的,必須將視頻圖層添加到AVPlayerLayer中方能顯示視頻。使用AVPlayer首先瞭解一下幾個常用的類:1、AVAsset:AVAsset類專門用於獲取多媒體的相關信息,包括獲取多媒體的畫面、聲音等信息,屬於一個抽象類,不能直接使用。2、AVURLAsset:AVAsset的子類,可以根據一個URL路徑創建一個包含媒體信息的AVURLAsset對象。3、AVPlayerItem:一個媒體資源管理對象,管理者視頻的一些基本信息和狀態,一個AVPlayerItem對應著一個視頻資源。4、AVPlayer:播放器。5、CMTime:是一個結構體,裡面存儲著當前的播放進度,總的播放時長。一般項目中會初始化一個播放管理的工具類(單例):

【文章福利】小編整理瞭一些音視頻學習資料包、大廠面試題、技術視頻和學習路線圖,包括(C/C++,Linux,FFmpeg webRTCrtmp hlsrtsp ffplay srs 等等資料)有需要的可以點擊1150259293加群免費領取哦~

1、實例化一個AVPlayer:

- (AVPlayer *)player {
if (_player == nil) {
_player = [[AVPlayer alloc] init];
_player.volume = 1.0; // 默認最大音量
}
return _player;
}

发表回复

相关推荐

考研復試要準備什麼(最全幹貨)

哈嘍,大傢好,首先自我介紹一下,一戰上岸985,總分408,筆面試第一。復試是考研中非常重要的一個環節,有人通過復試實現瞭...

· 52秒前

英语考点丨​allow

allow 及物动词 1)允许,准许,同义词:permit, let 例句: She allowed me to interview her. 她允许我采访她。 2)同意给 ...

· 1分钟前

「图片素材」 科技感PPT最偏爱的光效背景图

好几周没有给大家分享素材了,这周公子整理的是一组非常实用,又相对来说会难找一些的各种光效背景图。特别适合用在科技风的 ...

· 2分钟前

日本留学 | 首次上榜QS排名便冲到前500?!丰田工业大学什么来头?

首次上榜QS排名便冲到前500?!这所日本大学什么来头?

· 2分钟前

臺灣電影金馬獎評選五十大華語導演

評選結果附錄於《光影的長河——影史百大華語電影》一書,僅供參考。以下截圖來自金馬影展官網相關頁面,現已失效無法查看。

· 3分钟前