这张图是Apple开发文档中的一张,概括了音频开发中从上倒下所有可用的框架。

1. Media Player
主要是用于文件类型的音频数据处理,配置好播放录制环境,设定好输入输出路径,然后start,就不用管了。
2. OpenAL和Audio Toolbox
这两个都能对内存(流)形式的音频数据进行处理,在播放过程中还可以对数据进行操作。这两者使用起来稍微有点复杂。
这两者不同点是OpenAL可以放入一段数据,它播放一段数据,顺序执行。
Audio Toolbox是一个音频队列Audio Queue Service,它采用回调方式处理数据,如果处理实施音频流,还得重新写一个缓存。
3. Audio Unit
Audio Unit是最底层的框架,它有两个好处。一个是实时响应最快,另一个是它提供了很多种类的unit,可以对音频做很专业的处理(包括acoustic echo cancelation回音消除)
它的开发难点在于各种参数的配置,参数晦涩难懂,建议参看官方demo。
其中kAudioUnitSubType_VoiceProcessingIO用于打开回音消除功能。。。。。。
网友评论