首先, IO Unit 的职责就是负责 音频的采集和播放. 他是通过系统硬件打交道, 可以说是封装了硬件的实现, 降低我们和硬件打交道的成本. 涉及到哪些硬件呢?...我们简单地思考一下, 采集一定要和麦克风打交道, 播放呢, 就是听筒或者扬声器.
在介绍 IO Unit 的结构设计之前, 我们先想象一下, 如果我们来设计实现这个模型, 大概是什么样子?...可能是这样的:
输入硬件 (麦克风) -> 采集到的原始音频数据 -> 自定义处理音频数据 -> 处理后的音频数据 -> 输出设备 (扬声器 / 听筒)
我们可以将此分为两部分:
输入硬件 (麦克风)...Ps: 上面说的调节音量条, 都是调节的 播放音量, 采集音量无法通过硬件调节, 可以通过 AudioUnit 的 volume 属性调节....Element 1 这段水管的源头(Input Scope) 固定连着麦克风, Element 0 这段水管的尽头(Output Scope) 固定连接着输出设备(e.g. 扬声器).