每当计算机处于中等到重负载时,经常使用带有许多标签的 Chrome 并使用 Youtube,每当我更改音量时,声音就会滞后/跳过约 5 秒。例如 Youtube 的视频组件也会相应滞后。
但问题并不局限于 Youtube,一旦出现此问题,在 VLC 中播放音频时更改音量也会导致与系统音量更改时相同的跳音。更改应用程序(如 Youtbe 或 VLC)的内部音量,或使用“声音”设置中的“应用程序”选项卡不会导致声音跳音。
我怀疑问题出在 ALSA 和我的声卡之间。我通常使用多媒体键来调整音量,但一旦出现问题,使用音量滑块或甚至alsamixer
每次amixer
调整音量时都会产生相同的 5 秒延迟。
重新启动系统可以解决问题,但每次我“过度使用”计算机并导致延迟时都必须重新启动,这很累人。
这是我的输出lspci -v | grep -A6 Audio
:
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device 9840
Subsystem: Lenovo Device 3801
Flags: bus master, fast devsel, latency 0, IRQ 82
Memory at f0d60000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: snd_hda_intel
--
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 02)
Subsystem: Lenovo Device 3801
Flags: bus master, slow devsel, latency 32, IRQ 83
Memory at f0d64000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: snd_hda_intel
我怀疑有问题的模块是 snd_hda_intel。我尝试重新启动它,但似乎根本无法做到。sudo alsa force-reload
报告称,许多模块(其中包括snd-hda-intel
)仍处于加载状态。这甚至不会中断正在播放的音频。
sudo modprobe -rf snd-hda-intel
不起作用,给modprobe: FATAL: Module snd_hda_intel is in use.
这样做sudo alsactl restore
确实会干扰音频,导致跳过,并将音量重置为 100%。但下次更改音量时,跳过仍然会出现。