排查
用 Bluetooth 时键盘声音为什么会慢半拍——以及怎么解决
按键会立刻到达你的 app。声音则可能还在无线音频缓冲区里等着,才轮到进你的耳朵。
就算键盘事件本身在第一时间就被处理了,键盘声音听上去也可能是慢半拍的。原因在于屏幕上的字符和耳朵里的那记响声走的是两条不同的路。
字符从键盘走到 macOS,再进入当前应用程序。TypeLouder 收到这个事件的一份只监听副本,然后启动一段预载好的样本。如果输出走的是 Bluetooth,音频还得先编码、缓冲、经无线传输、再解码,耳机才播得出来。
对音乐来说,那点延迟基本无所谓。但对一段和你指尖绑在一起、只有两成秒的按键样本来说,就非常明显了。
跑一次三十秒的测试 #
- 在 TypeLouder 里选择你的 Bluetooth 耳机。
- 用正常速度打一句话。
- 打开 设置 → 声音 → 音频输出.
- 把 TypeLouder 切换到 Mac 的内置扬声器。
- 再把同一句话打一遍。
如果内置扬声器听着是即时的,说明按键检测工作正常,差别出在 Bluetooth 这条路上。你不需要重装 app,不需要重置输入监控,也不需要换一台更快的 Mac。
为什么视频看起来没有同样的延迟 #
视频播放器提前就知道自己要呈现哪一帧画面和哪一段声音。它们可以把画面延后,去对上已经缓冲的 Bluetooth 音频。实时的击键则无法预测。TypeLouder 没法在你手指按下之前就开始播放 click,所以这里没有视频那种补偿可用。
这也是为什么音游和现场乐器对无线输出很敏感。关键属性不是音质,而是一个不可预测的动作与反馈之间的时间差。
最跟手的那些输出 #
当同步最要紧时,用这些:
- Mac 内置扬声器: 本地链路短,在 MacBook 上尤其可信。
- 有线耳机: 私密,还省去了 Bluetooth 的无线传输和编解码环节。
- USB 或 Thunderbolt 音频接口: 把缓冲区大小设成一个务实的数值后,它是桌面上不错的选择。
- 有线显示器音频: 通常可以接受,不过 HDMI 和显示器可能会加上自己的处理。
在办公室里,AirPods 和其他 Bluetooth 耳机仍然可能是对的选择。隐私也许比完美的同步更重要。把音量放低,选一款柔和些的音效包;圆润的 thock 通常比尖锐的 click 更不容易让人察觉那点延迟。
确认这个 app 不会在每次按键时都去读写文件 #
做得好的键盘音效 app,应该在你开始打字之前就把样本载入内存。每次按键之后才去打开并解码音频文件,会带来忽长忽短的延迟,尤其让停顿后的第一次按键格外难听。
TypeLouder 会预载样本,并复用音频播放器或已解码的缓冲区。它的事件监听是只监听的,所以它无法延迟或吞掉送往你写作 app 的击键。剩下的输出链路,才是你耳朵在评判的东西。
按效果排序的排查步骤 #
- 测一测内置扬声器,把 Bluetooth 单独拎出来看。
- 当你需要私密和精准的时间对齐时,用有线耳机。
- 把按键音的音量调低;响亮的瞬态会让时间上的偏差更显眼。
- 试试 Ruby Thock 或 Midnight Thock,别用更锐利的 Frost Click。
- 除非确实需要,否则不要再让音频多绕一层无线或虚拟声卡。
- 如果延迟突然比平时严重得多,就把设备断开重连。
换音效包并不能消除传输带来的延迟,但声音的形状会改变你对它的感知强度。不妨对比一下各款的起音,就在 免费试音室 ,用你当前的输出设备。
延伸阅读 #
常见问题
用 AirPods 时键盘声音为什么会慢半拍?
Bluetooth 音频在播放之前要先编码、缓冲、传输、再解码。这条链路带来的延迟,在一记短促的 click 本该对上一个实时动作时,很容易被察觉。
键盘音效 app 会拖慢打字吗?
像 TypeLouder 这样只监听的 app,收到的是按键事件的一份副本,并不夹在键盘和当前应用之间。字符和声音各走各的路。
哪种输出的感知延迟最低?
Mac 的内置扬声器、有线耳机和有线音频接口通常更跟手,因为它们避开了 Bluetooth 的编码和缓冲。