AudioOut
AudioOut 在 Windows 设备上以 48 kHz 播放客户机 PCM。旧式端口有自己的流和队列,因此音乐和音效一起播放,欠载之后仍保持采样顺序。
仓库笔记截至 2026年10月10日
端口与主机设备
游戏提交一块缓冲区,并期望这次调用大约持续这块缓冲区发声的时间。这段等待来自主机设备腾出空间,而不是来自一次把采样丢掉的睡眠。AudioOut、AudioIn 和 AudioOut2 暴露按节奏推进的端口、队列、扬声器元数据和已连接主设备状态。一批操作先校验每一个端口,然后把可听时间片提交一次,因此静音的辅助端口不会把持续时间乘上去。
旧式 AudioOut 端口拥有各自的 Windows 流和 PCM 队列。音乐和音效可以同时播放。批输出提交每一个活动端口。欠载之后,活动环保持采样顺序,一段短淡变去掉恢复时的咔嗒声。WinMM 设备预卷真实的 PCM,并使用一毫秒的计时器周期。
延迟
普通储备从 42 ms 起,以四个缓冲区为一步增长,最高大约 170 ms,并且只有正在运行的游戏确实让设备欠载时才增长。为 PPSA25872 测得的配置从 128 ms 起,因为它的混音器在启动和场景工作期间可以暂停大约 100 到 120 ms。这个更大的储备不会加到其他游戏上。
非有限采样在到达设备之前被替换。这个净化保护扬声器。它不能修复一个已经存下 NaN 的滤波器。ACM 那一页说明了在 Subnautica 里产生这些值的卷积缺陷。
输出存在于哪里
打开设备失败不会报告给游戏。缺少声卡是关于主机的事实。调用者回退到按节奏的静音等待,使游戏的计时仍然前进。设备在运行中途失效时也一样。输出实现在 Windows 上。其他构建保持端口静音,并且节奏正确。
把已解码的预览片段直接回退混入,默认是关闭的。在游戏自己的 AudioOut 混音旁边再播一遍预览,听起来就是回声。PS5_AUDIO_FALLBACK_MIX=1 打开这次混音。启动器可以用它的声音设置把设备静音,这会以 PS5_AUDIO_DISABLED 到达。
已经实现的部分
- 48 kHz 主机播放,带按节奏推进的 AudioOut、AudioIn 和 AudioOut2 端口。
- 旧式端口使用各自的 Windows 流,使同时播放的音乐和音效保持顺序。
- 从 42 ms 起、只在设备欠载时增长、最高大约 170 ms 的储备。
- 替换非有限采样,并在没有设备打开时做按节奏的静音回退。
尚未实现的部分
- 主机输出仅限 Windows。
- 控制器振动不是由音频触觉音轨驱动的。
- 净化不会重建一段已经被污染的滤波器历史。
相关机制
这些页面说明什么