这似乎太明显了,我有点震惊居然需要问这个问题。我将耳机插入 Ubuntu 笔记本电脑的 3.5 毫米插孔,并希望它能正常工作。输出确实“正常工作”。但是,每次我都必须手动选择耳机麦克风作为默认输入。当插入耳机时,如何告诉 Ubuntu 像其他台式机/笔记本电脑操作系统一样运行?
编辑:每次我插入耳机时,升级到最新版本的 gnome 都会出现一个对话框询问插入了什么。但是,选择“耳机”仍然会导致输入设备不变。
编辑#2:为了清楚起见,也为了呼应我下面的评论,如果对话框能起作用的话,那么它完全没问题,但事实并非如此。
答案1
为什么它不起作用
我的系统,Dell XPS 13 9350 上的 Kubuntu 19.10,可以检测耳机并自动设置正确的输出。
据我所知,它不知道耳机是否有麦克风。这就是为什么它只改变输出而不改变输入的原因。
如何实现
这是在插入/拔出时自动切换麦克风的方法:
acpi_listen
是检测何时插入/拔出耳机。它检测到的内容如下:
jack/headphone HEADPHONE unplug
jack/headphone HEADPHONE plug
pulseaudio
我们可以切换源端口
在我的系统中选择耳机麦克风:
pacmd set-source-port alsa_input.pci-0000_00_1f.3.analog-stereo analog-input-headset-mic
选择内置麦克风:
pacmd set-source-port alsa_input.pci-0000_00_1f.3.analog-stereo analog-input-internal-mic
您可以使用它pacmd list-cards
来获取源名称和端口名称的列表。
您还可以使用终端自动完成功能来帮助编写命令。
现在,让我们把所有内容整合在一起:
切换到 rootsudo su
并创建脚本/etc/acpi/headset-microphone.sh
#!/bin/sh
export PULSE_RUNTIME_PATH="/run/user/1000/pulse/"
if [ "$1" = plug ]; then
sudo -u you -E pacmd set-source-port alsa_input.pci-0000_00_1f.3.analog-stereo analog-input-headset-mic
else
sudo -u you -E pacmd set-source-port alsa_input.pci-0000_00_1f.3.analog-stereo analog-input-internal-mic
fi
务必:
- 更改
you
为您的用户名 - 用你的值替换 pulseaudio 源和端口
- 使脚本可执行,
chmod a+x /etc/acpi/headset-microphone.sh
然后创建事件监听器,创建文件“/etc/acpi/events/headset-microphone-plug”:
event=jack/headphone HEADPHONE plug
action=/etc/acpi/headset-microphone.sh plug
以及拔出事件监听器,创建一个文件“/etc/acpi/events/headset-microphone-unplug”:
event=jack/headphone HEADPHONE unplug
action=/etc/acpi/headset-microphone.sh unplug
最后,重启 acpi 监听事件服务
systemctl restart acpid.service
答案2
经过多年,终于有一款 gnome 扩展程序拯救了我们的生命。它彻底移除了弹出窗口,保留了最后的选择。
https://extensions.gnome.org/extension/1482/remove-audio-device-selection-dialog/