AudioUnit - iOS端的音頻處理框架

簡單介紹

在iOS平臺,所有音頻框架的底層都是基于AudioUnit實現(xiàn)的。比如熟悉的AVFoundation,AudioToolBox等等,這些框架都封裝了AudioUnit,然后提供了更高層的API。
主要的功能:
1.使用低延遲的音頻I/O
2.多錄聲音的合成并且回訪
3.回聲消除,Mix兩軌音頻,以及均衡器,壓縮器,混響器等效果器。
4.需要圖狀結(jié)構(gòu)來處理音頻,可以將音頻處理模塊組裝到靈活的圖狀結(jié)構(gòu)中。這是iOS中唯一提供此功能的音頻API

簡單使用

步驟:

創(chuàng)建音頻會話AudioSession
image.png
構(gòu)建一個AudioUnit,設(shè)置AudioUnit參數(shù),首先構(gòu)建一個AudioUnit描述的結(jié)構(gòu)體
image.png

Audio的分類

按照用途分為五大類型

1.Effect Unit kAudioUnitType_Effect 主要提供聲音特效處理的功能

常用子類型如下:
  • 均衡效果器 kAudioUnitSubType_NBandEQ
  • 壓縮效果器 kAudioUnitSubType_DynamicsProcessor
  • 混響效果器 kAudioUnitSubType_Reverb2

2.Mixer Unit kAudioUnitType_Mixer 主要提供Mix多路聲音的功能

常用子類型如下:
3DMixer 和 多路聲音混音的效果器kAudioUnitSubType_MultiChannelMixer

3.I/O Unit kAudioUnitType_Output 提供I/O功能

RemoteIO 采集音頻與播放音頻
Generic OutPut  只使用輸出,不需要麥克風,比如播放文件

4.FormatConverter 提供格式的轉(zhuǎn)換

5.Generator 提供播放器的功能

用這個描述來構(gòu)造真正的AudioUnit有兩種方式。
第一種:直接使用AudioUnit裸的創(chuàng)建方式;
根據(jù)AudioUnit的描述,找出實際的AudioUnit類型。

第二種:使用AUGraph和AUNode來構(gòu)建;
構(gòu)建一個AUGraph完成一個音頻播放的功能


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容