iOS採集錄製音視訊API選擇推薦

小東邪發表於2019-05-11

需求

對於整個iOS體系中音視訊眾多框架,我們不應該盲目選擇,針對音視訊的採集錄製,需要根據自己的實際需求選擇最適合專案的API,以致於最高效的完成專案任務.

以下是一些主要中低層框架的選擇推薦與原理講述,程式碼實戰,可以通過以下連結瞭解你需要的,也可以從文中連結找到對應文章,去github下載相應的Demo幫助你快速開發.


iOS中音訊架構圖

3.CoreAudioLevel

1.上層API

對於僅僅想直接播放個音訊或視訊的需求,沒有必要使用底層的API,這些API可以簡單的直接呼叫一些類似start,stop,設定一些資原始檔路徑就可以做錄製與播放.

  • 視訊播放:AVPlayer
  • 視訊錄製:UIImagePickerController
  • 音訊播放:AVAudioRecorder
  • 音訊錄製:AVAudioPlayer

以上API如需瞭解使用自行百度,簡單易用.

2.中層API

如果想採集到視訊幀,音訊幀加以利用,需要使用一些中層的API,對於採集而言,視訊最底層即AVCaptureSession,我們可以通過回撥函式拿到指定格式的音訊視訊.錄製基本也同理.但對音訊而言,如果不對音訊有太多具體設定,僅僅做同步,可以直接使用AVCaputureSession中的音訊採集.

3.底層,功能最多的API

音訊採集方面還可以使用更底層,更好用的Audio Queue, Audio Unit.

Audio Queue與Audio Unit的選擇

  • Audio Queue: 以佇列的形式高效採集視訊資料,可以直接設定採集PCM,AAC等壓縮,未壓縮型別格式音訊資料.
  • Audio Unit: 比起Audio Queue, 提供更加專業音訊處理,支援混合,均衡,格式轉換和實時輸入/輸出,用於錄製,播放,離線渲染和實時對話,例如VoIP(網際網路協議語音).可以從iOS應用程式動態載入和使用它.

相關文章