Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用 WASAPI 在 Windows 上的音频流中的延迟和可靠性之间是否存在任何权衡?
也就是说,如果我正在编写 WASAPI 应用程序并且我想要最小延迟,那么与使用更高延迟相比,音频流会受到更多的爆裂声和咔嗒声以及音频干扰吗?使用尽可能低的延迟是“免费午餐”还是附带警告的东西?
延迟是缓冲区大小的函数(例如bufferSize/sampleRate)。通过增加缓冲区大小,您可以减少说 D/A 转换器在操作系统让您的应用程序有机会填充下一个缓冲区之前消耗当前样本缓冲区的机会。缺点是延迟增加了。延迟增加的效果是在播放下一个缓冲区之前不会听到您在播放期间所做的更改(例如增加音量)。在极端情况下,您可以想象在您的应用程序和声卡之间有 1 个样本缓冲区。您的延迟为零,但 Windows 调度程序无法定期为您提供足够的服务以防止退出。
bufferSize/sampleRate
没有免费的午餐,但随着计算机的不断加速,缓冲区不足的可能性已大大降低。