AudioUnit 介绍
如下图, 可见 iOS 上所有的音频基础都是基于 AudioUnit 的, 比如 AudioToolbox、Media Player, AV Foundation 等都是在 AudioUnit...我们简单地思考一下, 采集一定要和麦克风打交道, 播放呢, 就是听筒或者扬声器.
在介绍 IO Unit 的结构设计之前, 我们先想象一下, 如果我们来设计实现这个模型, 大概是什么样子?...-> 采集到的原始音频数据
待播放的音频数据 -> 输出设备 (扬声器 / 听筒)
当然我们拿到了 “采集到的原始音频数据” 之后, 就可以自行处理, 然后做为 “待播放的音频数据” 塞给输出设备....(可见耳返在 iOS 上实现非常简单, 而且是系统内置支持, 延迟很低, Android 上会比较麻烦: 软件耳返延迟高, 硬件耳返需要单独对接各家手机厂商)....除此之外, Scope 上可以设置很多属性, 比如说, 设置音频的格式, 如果我想采集 48000 的 16 bit float 的数据, 那在 Element 1 的 Output Scope 上设置就可以了