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

jpi*_*pic 8 sound soundcard volume-control

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

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

如何禁用硬件音频输出的自动切换,或启用软件音量控制的自动切换?使软件行为与硬件行为一致会很棒。

Ubuntu 11.10 vanilla 是最新的。

num*_*and 2

您可以通过使用针对某些事件而编写的 udev 规则来实现您想要的目的。在本例中,这些事件是插入 USB 声卡和拔出它。根据这个论坛的回答,可能的解决方案如下:

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

    sudo -H nautilus /etc/udev/rules.d/10-usb-sound-card.rules
    
    Run Code Online (Sandbox Code Playgroud)
  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'"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 保存文件并给出

    sudo udevadm trigger --action=add /etc/udev/rules.d/10-usb-sound-card.rules
    
    Run Code Online (Sandbox Code Playgroud)

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

我希望这能帮到您。