2026-10-25性能优化作者:谢知远阅读约 5 分钟

小鸡模拟器音频链路重构:延迟降到 21 毫秒

小鸡模拟器音频链路重构封面
缓冲从四帧压到一帧,混音线程优先级提到实时档

2026 年 10 月 25 日,小鸡模拟器重写音频链路,输出延迟从 68 毫秒降到 21 毫秒,爆音率从 0.31% 降到 0.02%。蓝牙耳机下会自动增加 40 毫秒缓冲,节奏类游戏的判定偏移从 47 毫秒降到 9 毫秒。

音频延迟平时不容易察觉,玩节奏游戏或格斗游戏时就非常明显:按下按键,声音晚半拍,连招的节奏对不上。旧版为了保证不断音,缓冲区留了四帧,代价就是几十毫秒的延迟;缓冲一少就爆音,两件事一直互相牵制。

音频延迟与爆音率的对比测试
有线延迟 21 毫秒,蓝牙自动加 40 毫秒缓冲

少缓冲一帧,就少 16 毫秒

音频链路改成两级:内核按原始采样率输出,混音层统一重采样到 48 kHz,再交给系统音频接口。缓冲从四帧压到一帧,按 60 帧计算每帧 16.7 毫秒,理论上就省下 50 毫秒。为避免欠载,混音线程优先级提到实时档,并在欠载发生前 3 毫秒预填充。

音频组负责人谢知远说:「爆音不是音量问题,是缓冲空了。以前靠加缓冲掩盖,现在靠调度保证它不空。」团队给 24 款高频作品重做了音轨同步,把视频帧与音频帧的时间戳对齐到同一个时钟源。

实测:延迟、爆音与占用

灰度覆盖 7 款机型、24 款作品,累计 1300 小时。数据:有线输出延迟 68 毫秒降到 21 毫秒;蓝牙输出 61 毫秒,自动加 40 毫秒缓冲后为 101 毫秒;爆音率 0.31% 降到 0.02%;节奏类游戏判定偏移从 47 毫秒降到 9 毫秒;音频线程 CPU 占用上升 0.6 个百分点;整机功耗变化小于 0.1 瓦;音轨错位问题清零,此前 6 款作品存在片头与画面差半拍。

延迟降低后暴露了另一个问题:部分老作品的音效触发本身就有延迟,以前被缓冲掩盖,现在听得出来。这类情况由编辑在作品说明里标注,玩家可以在设置里手动加 10 到 30 毫秒的补偿。

蓝牙、手动补偿与录音回环

客户端启动时检测输出设备,命中蓝牙就自动加缓冲,并在设置页显示当前估算延迟。手动补偿范围 0 到 120 毫秒,按 5 毫秒一档调节,设置随设备保存,换耳机不需要重调。录音回环只用于调试,默认关闭,开启后会把输出录回输入,便于玩家自己测延迟。

技术负责人罗启年补充:「延迟这件事没有绝对的最优值,只有适合自己的值。我们把默认值调到大多数人感觉不到的位置,剩下的交给玩家。」音频链路不上传任何录音,回环数据只留在本地内存,关闭后立即释放。

低延迟的代价与边界

混音线程提到实时优先级后,省电模式会与它冲突:系统在低电量时压低 CPU 频率,实时线程可能拿不到足够的时间片,出现欠载。客户端在电量低于 15% 时会自动把缓冲加回两帧,延迟升到约 55 毫秒,并在设置页说明原因,玩家可以手动改回低延迟模式。

延迟也不是越低越好。缓冲压到一帧后,个别蓝牙设备会因为时钟漂移产生周期性咔哒声,这类设备会被记入名单,连接时自动加 60 毫秒。音频组表示,目标是让 95% 的设备在默认设置下听不出问题,剩下的交给手动补偿与设备名单逐步覆盖。

音频链路的每个环节都有独立开关:内核重采样、系统混音、蓝牙编码。关掉内核重采样能让 44.1 kHz 的作品少一次转换,延迟再降约 4 毫秒,代价是部分设备的系统混音会二次转换,反而更差,所以默认只在检测到原生 44.1 kHz 输出时关闭。测试中还发现,USB 声卡与部分扩展坞的缓冲更深,会自动加 20 到 40 毫秒,这类设备在设置页会显示实测值而不是理论值。延迟校准的记录按设备保存,换设备后需要重新测一次,历史记录保留最近 10 次,能看到同一副耳机的波动范围。校准完成后可以保存为设备预设,下次连接自动套用;如果听到轻微爆音,把缓冲加一帧通常就够,不必整档重调。系统混音与蓝牙编码同时开启时,实测总延迟比只开其中一项高出 12 到 18 毫秒,因此自动建议是二选一而不是都打开。

声音和手,终于同步

延迟 21 毫秒、爆音率 0.02%,蓝牙自动补偿,支持手动校准。

前往下载中心

玩家评论(5)

袁
袁浩然

打节奏游戏终于对得上了,之前总觉得慢半拍。

崔
崔明远

蓝牙下会自己加缓冲,考虑得挺细。

钟
钟清和

片头音画不同步的问题没了,之前一直以为是镜像问题。

唐
唐予安

手动补偿挺好用,我那副耳机加了 15 毫秒刚好。

曾
曾嘉禾

希望校准能一键完成,现在要自己数拍子。

上一篇小鸡模拟器游戏库扫描重写:1.2 万文件 8 秒完成 下一篇小鸡模拟器离线模式上线:断网可玩,联网自动合并存档
↑