我正在为 Windows (7+) 开发一个应用程序,它使用 Wasapi 进行同时录制和播放(VOIP 风格)。我使用独占模式访问为同一设备设置了两个流(一个捕获,一个渲染)。缓冲区大小完全相同(10 ms 的数据,正确对齐)。
一切都很好,但我注意到捕获数据与渲染数据的速率“略有”不同,几乎就像我使用具有不同时钟的两个独立设备一样。捕获流以略快于渲染流消耗的速率提供数据。
当我的应用程序与另一个用户交谈时,我希望用户听到他们自己作为混音的一部分。如果这两个流没有完全同步,那么如果不偶尔“弹出”,这将是不可能的。
有没有人遇到过这种“不同步同一设备”的问题?我缺少一些基本概念吗?