使用WASAPI在Windows上的音频流中是否存在延迟和可靠性之间的权衡?
也就是说,如果我正在编写WASAPI应用程序并且我想要最小延迟,那么音频流是否会受到更多弹出和点击以及音频干扰的影响,而不是使用更高的延迟?是否可以使用最低延迟的免费午餐"或带有警告的东西?
答案 0 :(得分:3)
延迟是缓冲区大小的函数(例如bufferSize/sampleRate
)。通过增加缓冲区大小,可以降低在操作系统为应用程序提供填充下一个缓冲区的机会之前,D / A转换器将消耗当前样本缓冲区的可能性。缺点是延迟增加。延迟增加的影响是,在播放下一个缓冲区之前,您将无法听到在播放期间所做的更改(例如,增加音量)。在极端情况下,您可以想象应用程序和声卡之间的1个样本缓冲区。您的延迟时间为零,但Windows调度程序无法定期为您提供服务以防止丢失。
没有免费午餐这样的东西,但随着电脑继续加速,缓冲不足的可能性已经大大减少了。