![声卡热插拔时的音量小部件问题](https://linux22.com/image/1037628/%E5%A3%B0%E5%8D%A1%E7%83%AD%E6%8F%92%E6%8B%94%E6%97%B6%E7%9A%84%E9%9F%B3%E9%87%8F%E5%B0%8F%E9%83%A8%E4%BB%B6%E9%97%AE%E9%A2%98.png)
插入 USB 声卡时有时会导致当前音频输出(即 Banshee 和 PC 扬声器)立即切换。但音量控制(系统托盘中的声音小部件、音量键盘键)仍卡在旧声卡上。
插入声卡和放大器,同时将 PC 扬声器的音量设置为超高。如果不打开声音设置或 alsamixer,则无法控制音量。在某些国家/地区,这可能会引起邻居的干扰。您无法使用系统托盘的声音小部件或音量键盘键来控制它。
如何禁用硬件音频输出的自动切换,或启用软件音量控制的自动切换?如果软件行为与硬件行为一致就好了。
Ubuntu 11.10 vanilla 已更新。
答案1
您可以使用针对特定事件执行的 udev 规则来实现您想要的效果。在本例中,这些事件是插入和拔出 USB 声卡。根据这论坛答案,可能的解决方案如下:
打开有usb声卡udev规则的文件:
sudo -H nautilus /etc/udev/rules.d/10-usb-sound-card.rules
粘贴和复制
KERNEL=="pcmC[D0-9cp]*", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k; K=$${K#pcmC}; K=$${K%%D*}; echo defaults.ctl.card $$K > /etc/asound.conf; echo defaults.pcm.card $$K >>/etc/asound.conf" KERNEL=="pcmC[D0-9cp]*", ACTION=="remove", PROGRAM="/bin/sh -c 'echo defaults.ctl.card 0 > /etc/asound.conf; echo defaults.pcm.card 0 >>/etc/asound.conf'"
保存文件并给予
sudo udevadm trigger --action=add /etc/udev/rules.d/10-usb-sound-card.rules
命令。然后通过插入和拔出 USB 声卡来测试此规则。
我希望这能帮到您。