在iOS平台上,所有的音频框架底层都是基于AudioUnit实现的,较高层次的音频框架包括: Media Player、 AV Foundation、OpenAL和Audio Toolbox,这些框架都封装了AudioUnit,然后提供了更高层次的API(功能更少,职责更单一的接口)。
当开发者在开发音视频相关产品的时候,如果对音视频需要更高程度的控制、性能以及灵活性,或者想要使用一些特殊功能(回声消除)的时候,可以直接使用AudioUnit API。苹果官方文档中描述,AudioUnit提供了音频快速的模块化处理,如果是在以下场景中,更适合使用AudioUnit而不是使用高层次的音频框架。
想使用低延迟的音频I/O(input或者output),比如说在VoIP的应用场景下。
多路声音的合成并且回放,比如游戏或者音乐合成乐器的应用。
使用AudioUnit里面提供的特有功能,比如:回声消除、Mix两轨音频,以及均衡器、压缩器、混响器等效果器。
需要图状结构来处理音频,可以将音频处理模块组装到灵活的图状结构中,苹果公司为音频开发者提供了这种API。<