每当调整某些音频流的音量时,我都会听到咔哒声

Wrz*_*mft 13 sound pulseaudio volume-control

(几乎)每当调整音频流的音量时,我都会听到咔哒声。

我正在使用一个 Web 应用程序,它发出多个流并经常调整它们的音量(并且应该能够做到这一点),这导致了无法忍受的点击量。(这个应用程序现在已经改变了它处理流的方式,这样现象不再发生;这个问题仍然可以通过手动调整流来重现,其他应用程序可能会感兴趣。)

有没有已知的方法来防止这种情况?

一些进一步的观察:

  • 当我手动调整流的音量时也会发生这种情况(使用pavucontrol)。特别是,这也适用于来自其他应用程序(如ogg123)的流,因此它似乎不是应用程序的问题。

  • 如果更改整个输出设备的音量,仅使用pavucontrol播放选项卡上的流,则不会发生这种情况。

  • 点击的强度取决于当前在相应音频流中播放的音量。用单调的声音最好听。如果播放至少一个其他音频流,这种现象也会更加突出。

  • 对于轻微的体积变化也可以观察到这种现象。

  • 这与以下描述的问题不同:如何在调整音量时禁用“砰砰”声?声音明显不同于/usr/share/sounds/freedesktop/stereo/audio-volume-change.oga

  • 我的印象是过去几个月的一些更新改善了情况,但并没有完全消除问题。这也可能是因为我是一个不可靠的探测器。

  • 我第一次遇到这个问题是在 14.04。它在 16.04 中仍然存在。

  • 这发生在多台机器上,所以我认为这不是硬件问题。然而,它们都是英特尔设备。这是输出sudo lshw -C multimedia

    第一台机器:

    description: Audio device
    product: 7 Series/C210 Series Chipset Family High Definition Audio Controller
    vendor: Intel Corporation
    physical id: 1b
    bus info: pci@0000:00:1b.0
    version: 04
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list
    configuration: driver=snd_hda_intel latency=0
    resources: irq:28 memory:f2530000-f2533fff
    
    Run Code Online (Sandbox Code Playgroud)

    第二台机器

    description: Audio device
    product: 82801JI (ICH10 Family) HD Audio Controller
    vendor: Intel Corporation
    physical id: 1b
    bus info: pci@0000:00:1b.0
    version: 00
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list
    configuration: driver=snd_hda_intel latency=0
    resources: irq:32 memory:f9ff8000-f9ffbfff
    
    Run Code Online (Sandbox Code Playgroud)

tek*_*aul 2

当脉冲“忙”时,您可能会达到硬件的延迟限制。

configuration: driver=snd_hda_intel latency=0
Run Code Online (Sandbox Code Playgroud)

确实不存在零延迟这样的事情。我认为这意味着亚毫秒。

根据此https://arunraghavan.net/2013/08/pulseaudio-4-0-and-skype/ 在启动应用程序之前设置环境变量 PULSE_LATENCY_MSEC=10 。如果软件有更多工作要做混合流,这将为软件提供 10 毫秒的缓冲时间。

10 毫秒仍然是足够低的延迟,除非您正在玩现场音乐数字乐器或非常快的游戏。