【问题标题】:WASAPI lagging playbackWASAPI 延迟播放
【发布时间】:2013-07-07 13:16:10
【问题描述】:

我正在用 c++ 编写一个程序到 Windows 商店,它可以播放麦克风。在将其发送给扬声器之前,我必须修改这些位。首先,我想在没有任何延迟的情况下播放麦克风。频率和比特率是相同的(24 位,192000Hz),但我也尝试过(24 位,96000Hz)。我对其进行了调试,似乎扬声器速度更快,因此它必须等待来自麦克风的数据,就像吱吱声会以更高的频率工作,但根据设置它不会。任何人都知道这里有什么问题吗?

【问题讨论】:

  • 扬声器不能更快 - 只要它以您设置的相同频率工作,它可能有(并且有)缓冲。整个音频流的想法是,播放需要预加载缓冲区才能顺利运行,而在捕获端,您会收到完整的缓冲区,延迟至少为缓冲区长度。

标签: c++ audio microsoft-metro wasapi


【解决方案1】:

当您说存在一些“滞后”时,您的意思是在您向音频捕获设备提供数据和播放设备呈现数据之间存在一些延迟,还是您的意思是音频流是“在每个正在渲染的样本之间有小停顿?

如果播放有延迟,我会看看您初始化音频捕获客户端的延迟值。

如果有小停顿,那么我建议您对样本数据使用双缓冲,以便在渲染一个缓冲区时从音频捕获设备重新获取另一个缓冲区。

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 2011-12-29
    • 2018-05-12
    • 2012-06-20
    • 2020-05-02
    相关资源
    最近更新 更多