Apple 平台上如果涉及到音频采集, 很难避开 AudioUnit 这个工具库, AudioUnit 是 Audio Toolbox 下的一套有年头的 C API, 功能相对也比较强大, 虽然苹果最近几年推出并逐渐在其基础之后完善了一套...AVAudioUnit 的 OC/Swift 的 API, 但 AudioUnit 依然有很广泛的使用, 而且了解这套 C API 也对理解 AVAudioUnit 内部的实现和使用有很大的帮助....关于 AudioUnit 的文章是一个系列, 我希望能够把之前的经验结合一些实际的场景来介绍, 大概分为一下四个部分:
熟悉 IO Unit 结构和运行机制, 使用它来进行录制和播放
熟悉其他类型的 AudioUnit...然后呢, 我们可以把要处理后要播放的音频数据塞给 Element 0 的 Input scope, 这样扬声器里就播放这段音频, 这样的话, 我们耳朵里就听到了录制到的声音, 也就实现了耳返监听的功能...除此之外, Scope 上可以设置很多属性, 比如说, 设置音频的格式, 如果我想采集 48000 的 16 bit float 的数据, 那在 Element 1 的 Output Scope 上设置就可以了