我最近将 Ubuntu 19 更新到了 20.04,开始遇到一个奇怪的问题:当我打开声音设置并在耳机插入的情况下切换“输出设备”时,无论我选择什么设备,耳机都会发出声音。唯一似乎有帮助的方法是拔掉耳机。
Ubuntu 19 的情况并非如此。我可以在设置中轻松地在笔记本电脑的内置扬声器和耳机之间切换,并且运行良好。
还有人遇到过这样的问题吗?有办法解决吗?
我相信我的 Ubuntu 是 19.10(但我不确定小版本)。升级后我的内核似乎没有变化 - 5.4.0-29-generic。显然,硬件也没有改变。
答案1
更好的解决方案是删除当前用户的脉冲音频配置文件。
rm -r ~/.config/pulse/
然后注销并登录或重新启动。现在您可以在系统设置中更改音频设备,而不是 pavucontrol。
答案2
尝试pavucontrol
在那里安装并更改您的输出设备:
sudo apt install pavucontrol
pavucontrol
到目前为止,对我来说这是一个快速修复,但我无法告诉你它起作用的原因。现在我也可以再次通过默认声音设置切换输出设备。
当胆怯被植入时,有些人也会遇到问题。
您可能想看看这些问题:
20.04:从 Ubuntu 18.04 LTS 升级后,Ubuntu 20.04 LTS 中的内置扬声器(音频)无法正常工作
答案3
我认为您可能安装了 gnome-alsamixer。
我已将其安装在 Ubuntu 18.04 中,当我升级到 20 时,我开始遇到此问题。我使用它将其删除sudo apt-get autoremove gnome-alsamixer
,它为我解决了这个问题。
答案4
我的看法。
在此处列出的所有选项中(以及链接的答案中),只有带有 的选项pavucontrol
对我的情况有效。但在我看来,这太不方便了。
我有 3 个声音设备(输出声音),因此我之前有一个脚本用于在其中 2 个之间循环切换(第三个,索引为 0,我对它不感兴趣,所以我总是跳过它)。这是通过以下脚本完成的:
#!/usr/bin/env bash
sinks_indices=($(pacmd list-sinks | grep index | \
awk '{ print $NF }'))
sinks_activity=($(pacmd list-sinks | grep index | \
awk '{ if ($1 == "*") print "1"; else print "0" }'))
inputs=($(pacmd list-sink-inputs | grep index | awk '{print $2}'))
# find active sink
active_idx=0
for i in ${sinks_activity[*]}
do
if [ $i -eq 0 ]
then active_idx=$((active_idx+1))
else break
fi
done
# switch to next sink
swap_idx=$(((active_idx+1)%${#sinks_activity[@]}))
# skip sink 0 because it's not used in my system
if [ $swap_idx -eq 0 ]; then
swap_idx=$(((swap_idx+1)%${#sinks_activity[@]}))
fi
swap=${sinks_indices[$swap_idx]}
pacmd set-default-sink $swap &> /dev/null
for i in ${inputs[*]}; do pacmd move-sink-input $i $swap &> /dev/null; done
事实证明,这个脚本是有效的。但仍有一个问题:当你重新启动系统(甚至启动另一个应用程序)时,声音会不可预测地输出到 2 个设备中的任何一个(至少我无法弄清楚其中的逻辑)。但是一旦你运行脚本,声音就会输出到你需要的任何设备。
将其分配给热键非常方便,因此只需一个动作即可切换到另一个设备(比进入菜单方便得多;在 16.04 中它要好得多,声音设备检查器不是那么深)。
麦克风也存在类似的问题,我可以通过使用pacmd list-source-outputs
、pacmd set-default-source
和来解决它pacmd move-source-output
。
需要注意的是:从 20.04 Live DVD 启动时,问题(至少在扬声器/耳机之间切换时)根本不会发生。也许从头开始重新安装是有意义的,嗯...