WASAPI独家/事件模式会导致嗡嗡声

时间:2014-06-14 02:41:18

标签: c++ audio wasapi

当我在其中一个扬声器上打开独占模式音频流时,会发出奇怪的嗡嗡声。这种嗡嗡声不会在我的其他设备上以相同的条件发生,也不会在独占推模式或共享模式下发生。

问题似乎是WASAPI将周期设置为比我要求的高5毫秒,特别是没有理由。我已经尝试了10毫秒来查看timeGetTime()以显示15毫秒的时间段,所以我尝试请求15毫秒。然后这段时间变成了20毫秒。我的其他设备在与问题设备相同的条件下进行流式传输时不会发生这种情况,timeGetTime()显示的周期等于请求的周期。这是某个驱动程序中的故障,还是我可能在我的代码中做出我不应该做的假设?

更新:当我在开始播放流之前发送静音包时,嗡嗡声会消失。我不确定这会如何影响周期性,所以我还在寻找解释。

1 个答案:

答案 0 :(得分:1)

感谢MSDN的Maurits帮助我找到答案。

WASAPI文档指示在开始避免启动故障之前应将一段音频发送到设备。这里听到的嗡嗡声有资格作为其中之一。只有我的放大器,这是一个USB连接设备,有这个问题,而其他非USB设备没有(其他两个设备包括内置笔记本电脑扬声器和HDMI连接电视监视器)是因为它使用了不同于其他两种流媒体("标准流媒体"而不是"标准循环播放")。