(几乎)每当调整音频流的音量时,我都会听到咔嗒声。
我曾经使用过一个 Web 应用程序,它发出多个流并频繁调整其音量(应该能够做到这一点),这导致点击次数难以忍受。(此应用程序现已改变了处理流的方式,因此不再发生这种现象;通过手动调整流,仍可重现此问题,其他应用程序可能会对此感兴趣。)
有没有已知的方法可以防止这种情况发生?
进一步的观察:
当我手动调整流的音量时也会发生这种情况(使用
pavucontrol
)。特别是,这也适用于来自其他应用程序(如ogg123
)的流,因此这似乎不是应用程序的问题。如果改变整个输出设备的音量,则不会发生这种情况,只需
pavucontrol
使用回放标签。咔嗒声的强度取决于当前在相应音频流中播放的声音的音量。单调的声音最容易让人听到咔嗒声。如果播放至少一个其他音频流,这种现象也会更加明显。
对于轻微的体积变化也可以观察到这种现象。
这与以下描述的问题不同:如何才能关闭调节音量时的“爆音”声?声音明显不同于
/usr/share/sounds/freedesktop/stereo/audio-volume-change.oga
。我感觉最近几个月的一些更新改善了这种情况,但并没有完全解决问题。这也可能是由于我是一个不可靠的检测器。
我第一次在 14.04 中遇到此问题。它在 16.04 中仍然存在。
多台机器都出现这种情况,因此我假设这不是硬件问题。但它们都是 Intel 设备。以下是 的输出
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
第二台机器
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
答案1
当脉冲“繁忙”时,您可能会达到硬件的延迟限制。
configuration: driver=snd_hda_intel latency=0
零延迟其实是不存在的。我猜那意味着亚毫秒级。
根据此https://arunraghavan.net/2013/08/pulseaudio-4-0-and-skype/ 在启动应用程序之前设置环境变量 PULSE_LATENCY_MSEC=10。如果软件需要做更多工作来混合流,这将为软件提供 10ms 的缓冲时间。
除非您正在演奏现场音乐数字乐器或非常快的游戏,否则 10ms 仍然足够低的延迟。