版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.06.23 |
前言
AudioUnit框架作为您的应用程序添加复杂的音频操作和处理功能。 创建在主机应用程序中生成或修改音频的音频单元扩展。接下来几篇我们就一起看一下这个框架,感兴趣的看上面几篇文章。
1. AudioUnit框架详细解析(一) —— 基本概览
2. AudioUnit框架详细解析(二) —— 关于Audio Unit Hosting之概览(一)
3. AudioUnit框架详细解析(三) —— 关于Audio Unit Hosting之如何使用本文档和参考资料(二)
Audio Unit Hosting Fundamentals - 音频单元Hosting基础
iOS中的所有音频技术都建立在audio units
之上,如图1-1所示。 此处显示的更高级技术 - Media Player, AV Foundation, OpenAL, and Audio Toolbox
- 封装了音频单元,为特定任务提供专用和精简的API。
只有在您需要最高程度的控制,性能或灵活性时,或者您需要直接使用音频单元才能获得的特定功能(如声学回声消除)时,在项目中直接使用音频单元才是正确的选择。 有关iOS音频API的概述以及何时使用每种API的指导,请参阅Multimedia Programming Guide
。
Audio Units Provide Fast, Modular Audio Processing - 音频单元提供快速的模块化音频处理
当您需要以下任一项时,请直接使用音频单元,而不要通过更高级别的API使用音频单元:
- 具有低延迟实时的音频I / O(输入和输出),如VoIP(互联网语音协议)应用程序。
- 合成声音的响应回放,例如音乐游戏或合成乐器
- 使用特定的音频单元功能,如声学回声消除,混音或音调均衡。
- 处理链架构,可让您将音频处理模块组装到灵活的网络中。 这是iOS中唯一提供此功能的音频API。
Audio Units in iOS - iOS中的Audio Units
iOS提供了七个音频单元,按用途分为四类,如表1-1所示。
您用于以编程方式指定这些音频单元的标识符列于Identifier Keys for Audio Units
。
注意:iOS动态插件架构不支持第三方音频单元。 也就是说,可用于动态加载的唯一音频单元是由操作系统提供的。
1. Effect Unit - Effect单元
iOS 4提供了一个效果单元,iPod Equalizer
,内置iPod应用程序使用的相同均衡器。 要查看该音频单元的iPod应用程序的用户界面,请转到Settings> iPod> EQ
。 使用此音频单元时,您必须提供您自己的用户界面。 此音频单元提供一组预设均衡曲线,如低音增强(Bass Booster)
,流行(Pop)
和说出字(Spoken Word)
。
2. Mixer Units - Mixer单元
iOS提供了两个混音器单元。 3D Mixer unit
是OpenAL
构建的基础。 在大多数情况下,如果您需要3D混音器单元的功能,最好的选择是使用OpenAL
,它提供更适合游戏应用程序的更高级别的API。 有关演示如何使用OpenAL
的示例代码,请参阅示例代码项目oalTouch
。
多声道混音器单元Multichannel Mixer unit
为任意数量的单声道或立体声流提供立体声输出。 您可以打开或关闭每个输入,设置其输入增益,并设置其立体声声相位置。 有关如何使用此音频单元的演示,请参阅示例代码项目音频混音器Audio Mixer (MixerHost)
。
3. I/O Units - I/O 单元
iOS提供三个I / O单元。 远程I / O单元Remote I/O unit
是最常用的。 它连接到输入和输出音频硬件,并为您提供低延迟访问单个传入和传出音频采样值。 它提供了硬件音频格式和应用程序音频格式之间的格式转换,通过包含的格式转换器单元Format Converter unit
进行转换。 有关演示如何使用远程I / O单元的示例代码,请参阅示例代码项目aurioTouch
。
语音处理I / O单元Voice-Processing I/O unit
通过添加用于VoIP或语音聊天应用的声学回声消除来扩展远程I / O单元。 它还提供自动增益校正,语音处理质量调整和静音。
通用输出单元Generic Output unit
不连接到音频硬件,而是提供将处理链输出发送到应用程序的机制。 您通常会使用通用输出单元进行离线音频处理。
4. Format Converter Unit - 格式转换单元
iOS 4提供了一个格式转换器单元(Format Converter unit)
,它通常通过I / O单元间接使用。
后记
本篇主要讲述了iOS中的
Audio Units
,感兴趣的给个赞或者关注~~~~