AudioUnit框架詳細(xì)解析(四) —— 音頻單元提供快速的模塊化音頻處理之iOS中的Audio Units(一)

版本記錄

版本號(hào) 時(shí)間
V1.0 2018.06.23

前言

AudioUnit框架作為您的應(yīng)用程序添加復(fù)雜的音頻操作和處理功能。 創(chuàng)建在主機(jī)應(yīng)用程序中生成或修改音頻的音頻單元擴(kuò)展。接下來(lái)幾篇我們就一起看一下這個(gè)框架,感興趣的看上面幾篇文章。
1. AudioUnit框架詳細(xì)解析(一) —— 基本概覽
2. AudioUnit框架詳細(xì)解析(二) —— 關(guān)于Audio Unit Hosting之概覽(一)
3. AudioUnit框架詳細(xì)解析(三) —— 關(guān)于Audio Unit Hosting之如何使用本文檔和參考資料(二)

Audio Unit Hosting Fundamentals - 音頻單元Hosting基礎(chǔ)

iOS中的所有音頻技術(shù)都建立在audio units之上,如圖1-1所示。 此處顯示的更高級(jí)技術(shù) - Media Player, AV Foundation, OpenAL, and Audio Toolbox - 封裝了音頻單元,為特定任務(wù)提供專(zhuān)用和精簡(jiǎn)的API。

Figure 1-1 Audio frameworks in iOS

只有在您需要最高程度的控制,性能或靈活性時(shí),或者您需要直接使用音頻單元才能獲得的特定功能(如聲學(xué)回聲消除)時(shí),在項(xiàng)目中直接使用音頻單元才是正確的選擇。 有關(guān)iOS音頻API的概述以及何時(shí)使用每種API的指導(dǎo),請(qǐng)參閱Multimedia Programming Guide


Audio Units Provide Fast, Modular Audio Processing - 音頻單元提供快速的模塊化音頻處理

當(dāng)您需要以下任一項(xiàng)時(shí),請(qǐng)直接使用音頻單元,而不要通過(guò)更高級(jí)別的API使用音頻單元:

  • 具有低延遲實(shí)時(shí)的音頻I / O(輸入和輸出),如VoIP(互聯(lián)網(wǎng)語(yǔ)音協(xié)議)應(yīng)用程序。
  • 合成聲音的響應(yīng)回放,例如音樂(lè)游戲或合成樂(lè)器
  • 使用特定的音頻單元功能,如聲學(xué)回聲消除,混音或音調(diào)均衡。
  • 處理鏈架構(gòu),可讓您將音頻處理模塊組裝到靈活的網(wǎng)絡(luò)中。 這是iOS中唯一提供此功能的音頻API。

Audio Units in iOS - iOS中的Audio Units

iOS提供了七個(gè)音頻單元,按用途分為四類(lèi),如表1-1所示。

您用于以編程方式指定這些音頻單元的標(biāo)識(shí)符列于Identifier Keys for Audio Units。

注意:iOS動(dòng)態(tài)插件架構(gòu)不支持第三方音頻單元。 也就是說(shuō),可用于動(dòng)態(tài)加載的唯一音頻單元是由操作系統(tǒng)提供的。

1. Effect Unit - Effect單元

iOS 4提供了一個(gè)效果單元,iPod Equalizer,內(nèi)置iPod應(yīng)用程序使用的相同均衡器。 要查看該音頻單元的iPod應(yīng)用程序的用戶界面,請(qǐng)轉(zhuǎn)到Settings> iPod> EQ。 使用此音頻單元時(shí),您必須提供您自己的用戶界面。 此音頻單元提供一組預(yù)設(shè)均衡曲線,如低音增強(qiáng)(Bass Booster),流行(Pop)和說(shuō)出字(Spoken Word)。

2. Mixer Units - Mixer單元

iOS提供了兩個(gè)混音器單元。 3D Mixer unitOpenAL構(gòu)建的基礎(chǔ)。 在大多數(shù)情況下,如果您需要3D混音器單元的功能,最好的選擇是使用OpenAL,它提供更適合游戲應(yīng)用程序的更高級(jí)別的API。 有關(guān)演示如何使用OpenAL的示例代碼,請(qǐng)參閱示例代碼項(xiàng)目oalTouch。

多聲道混音器單元Multichannel Mixer unit為任意數(shù)量的單聲道或立體聲流提供立體聲輸出。 您可以打開(kāi)或關(guān)閉每個(gè)輸入,設(shè)置其輸入增益,并設(shè)置其立體聲聲相位置。 有關(guān)如何使用此音頻單元的演示,請(qǐng)參閱示例代碼項(xiàng)目音頻混音器Audio Mixer (MixerHost)。

3. I/O Units - I/O 單元

iOS提供三個(gè)I / O單元。 遠(yuǎn)程I / O單元Remote I/O unit是最常用的。 它連接到輸入和輸出音頻硬件,并為您提供低延遲訪問(wèn)單個(gè)傳入和傳出音頻采樣值。 它提供了硬件音頻格式和應(yīng)用程序音頻格式之間的格式轉(zhuǎn)換,通過(guò)包含的格式轉(zhuǎn)換器單元Format Converter unit進(jìn)行轉(zhuǎn)換。 有關(guān)演示如何使用遠(yuǎn)程I / O單元的示例代碼,請(qǐng)參閱示例代碼項(xiàng)目aurioTouch。

語(yǔ)音處理I / O單元Voice-Processing I/O unit通過(guò)添加用于VoIP或語(yǔ)音聊天應(yīng)用的聲學(xué)回聲消除來(lái)擴(kuò)展遠(yuǎn)程I / O單元。 它還提供自動(dòng)增益校正,語(yǔ)音處理質(zhì)量調(diào)整和靜音。

通用輸出單元Generic Output unit不連接到音頻硬件,而是提供將處理鏈輸出發(fā)送到應(yīng)用程序的機(jī)制。 您通常會(huì)使用通用輸出單元進(jìn)行離線音頻處理。

4. Format Converter Unit - 格式轉(zhuǎn)換單元

iOS 4提供了一個(gè)格式轉(zhuǎn)換器單元(Format Converter unit),它通常通過(guò)I / O單元間接使用。

后記

本篇主要講述了iOS中的Audio Units,感興趣的給個(gè)贊或者關(guān)注~~~~

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

相關(guān)閱讀更多精彩內(nèi)容

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