声卡热插拔时的音量小部件问题

声卡热插拔时的音量小部件问题

插入 USB 声卡时有时会导致当前音频输出(即 Banshee 和 PC 扬声器)立即切换。但音量控制(系统托盘中的声音小部件、音量键盘键)仍卡在旧声卡上。

插入声卡和放大器,同时将 PC 扬声器的音量设置为超高。如果不打开声音设置或 alsamixer,则无法控制音量。在某些国家/地区,这可能会引起邻居的干扰。您无法使用系统托盘的声音小部件或音量键盘键来控制它。

如何禁用硬件音频输出的自动切换,或启用软件音量控制的自动切换?如果软件行为与硬件行为一致就好了。

Ubuntu 11.10 vanilla 已更新。

答案1

您可以使用针对特定事件执行的 udev 规则来实现您想要的效果。在本例中,这些事件是插入和拔出 USB 声卡。根据论坛答案,可能的解决方案如下:

  1. 打开有usb声卡udev规则的文件:

    sudo -H nautilus /etc/udev/rules.d/10-usb-sound-card.rules
    
  2. 粘贴和复制

    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'"
    
  3. 保存文件并给予

    sudo udevadm trigger --action=add /etc/udev/rules.d/10-usb-sound-card.rules
    

命令。然后通过插入和拔出 USB 声卡来测试此规则。

我希望这能帮到您。

相关内容