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

image.png

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