USB 音频设备不会输出音频,除非将脉冲音频控制小程序打开

USB 音频设备不会输出音频,除非将脉冲音频控制小程序打开

我遇到间歇性问题,USB 声卡上的输出静音。请注意,这会以同样的方式影响 Apple 音频适配器和 Ugreen 声卡(两种截然不同的芯片组),从而排除硬件问题。

我注意到拔下 USB 电缆并将其插入另一个 USB 插座通常可以解决问题,但并非总是如此。重新启动也可以暂时修复它。

有时,我可以在听音频时,暂时暂停视频或音频应用程序,甚至向后跳过/滑动,然后问题会再次出现,所有音频都会静音。

奇怪的是,我注意到,如果 Pulseaudio 音量控制小程序打开,则目前不会出现问题,有时,如果问题发生并且我启动该小程序,有时它会解决问题(但并非总是如此,有时我在pulseaudio小程序中所做的任何事情都无法修复它)。

我检查过的事情:

  • Pulseaudio 显示正确的输出设备,VU 表显示音频正在其上播放,并且没有静音,但听不到任何声音。
  • Alsamixer 显示相关音频设备上没有任何静音
  • 它会影响播放音频的各种软件,并且当它发生时,似乎会发生在该设备上播放的所有软件上。
  • lsusb 和类似的命令显示 USB 设备没有任何奇怪的地方,它仍然可以被识别,并且 dmesg 中没有任何内容表明它有问题。
  • 即使出现无音频输出的问题,pulseaudio 也能正确检测正在插入和拔出的设备及其类型。

使用 Debian 稳定版和 Gnome 桌面,pulseaudio 配置非常普通

答案1

我发现了它这样做的原因和解决方法。

事实证明,强制它使用 44.1KHz/16bit 只会让问题消失。 USB 音频设备拒绝使用高于 44.1KHz 的采样率和 16 位的位深度工作,尽管该设备报告它可以在更高的速率和深度下工作(在我的例子中为 96KHz 和 24 位) - 事实上,它可以,只是不是在这种情况下。

问题的原因似乎是 USB3 端口上的 USB 1/2 音频设备出现问题,特别是通过支持 USB 3 的集线器。当使用仅限 USB 2 的集线器或直接插入主机上的 USB 3 端口时,问题就消失了,大概是因为它可以保留更多带宽。当插入与其他设备共享的集线器时,有时可以工作,有时则不能,这似乎与在该配置中的主机上保留带宽的问题有关。将其保持在仅 44.1KHz/16 位似乎让它即使通过 USB 3 集线器也能继续工作 - 似乎是因为 USB 设备进入仅 44.1KHz/16 位工作的备用低带宽模式。

Pulseaudio 默认设置采样率为 44.1KHz 和 16 位,但指定“备用模式”为 48KHz。这是在 /etc/pulse/ 的 daemon.conf 中定义的。这意味着,虽然它与设备的链接默认为 44.1KHz,但当源为 48KHz 并且没有 44.1KHz 源时,它可以将设备使用的采样率更改为 48KHz。

打开 Pulseaudio 音量控制 (pavucontrol) 意味着 pavucontrol 开始监控电平,或者至少与声音子系统交互。这阻止了pulseaudio切换到48Khz采样率,即使在播放48KHz源时也是如此,因为pavucontrol的监听被视为另一个音频流,并且它阻止了切换采样率。这意味着pulseaudio保持在44.1KHz,因此音频输出正常。

有不止一种方法可以成功解决这个问题:

  1. 通过从 daemon.conf 中删除备用采样率(将其设置为与默认值相同可有效禁用它),将pulseaudio 设置为始终使用 44.1KHz 采样率。

  2. 直接在主机端口上使用 USB 音频设备,而不是通过 USB 集线器。

相关内容