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


13

(几乎)无论何时调节音频流的音量,我都会听到喀哒声。

我正在使用一个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
    

    第二台机器

    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
    

点击不是Ubuntu音量调整的正常音量行为。这些点击听起来像什么?您的外接放大器有问题吗?恐怕您将不得不更加具体。什么程序在哪里调节音量?
汤普森·道斯

1
@ThompsonDawes:您的外部放大器有问题吗?–不太可能。如我所写,它发生在不同的机器上。- 您在哪里通过什么程序调节音量​​?–它发生在多个流中。通过调节音量pavucontrol足以体验该现象。
Wrzlprmft

我曾在某些采样率转换器中听到过这种现象。尝试将所有播放流和pulseaudio混音器设置为相同的采样率。
O8h7w

我现在没有时间进行测试和研究,但是如何设置Pulseaudio混音器使用的采样率?
Wrzlprmft

播放的流数量是否有影响?在播放单个视频流时,您是否会获得与多个视频流相同的结果?我试图确定为什么“(几乎)”始终为真,而当条件不为真时,条件是什么。您声明这在多台计算机上发生。他们有什么共同点吗?可能是相同的输出设备?相同的驱动程序?所有系统上的输出是否与命令相同sudo lshw -C multimedia?如果是,那么输出是什么?您使用哪种应用程序导致此行为?
年长者怪胎

Answers:


2

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

configuration: driver=snd_hda_intel latency=0

确实不存在零延迟。我认为这意味着不到毫秒。

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

除非您正在演奏现场音乐数字乐器或非常快速的游戏,否则10ms的延迟仍然足够低。


谢谢您的回答。不幸的是,它似乎无济于事,但似乎会使情况变得更糟。但是,到目前为止,我还没有尝试全局设置此变量,也找不到如何优雅地做到这一点。
Wrzlprmft
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.