答案1
您可以使用 udev 规则。为此,您需要找到可在插入 USB 耳机后区分的设备属性。这通常可以通过两个步骤完成:
udevadm monitor --udev
在插入设备之前运行。然后将其插入。将会有一堆输出线 - 只需选择一个并从中复制设备路径 - 它类似于/devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0
.在耳机仍处于连接状态的情况下,使用
udevadm info --path=/your/device/path --attribute-walk
查找可区分您的设备与其他设备的一些属性(例如ATTR{idVendor}
和ATTR{idProduct}
)。
有了这些后,您可以构建一个在连接设备时触发的 udev 规则。查看下面的文件/etc/udev/rules.d/
,了解它们的样子。您可能要构建的那个将以RUN+="some command"
.请注意,该行中使用的标识符(SUBSYSTEM=
等ATTRS=
)必须全部来自同一设备的描述 - 同一udevadm info --attribute-walk
输出块。
任务的第二部分是找到amixer
适合每个场景需求的设置,并将它们包装在您将放入RUN+=
udev 规则部分的命令中。对此,我无法帮助你,因为我没有类似的硬件。
答案2
正如 Caleb 提到的,PulseAudio 可让您将流从一台设备迁移到另一台设备。
要自动切换(而不是通过手动切换)pavucontrol
,请将模块添加module-switch-on-connect
到您的 PulseAudio 配置中,如下所述:
https://askubuntu.com/questions/158241/automatically-change-sound-input-output-device/158250#158250
答案3
如果您还没有,pulseaudio
它将在一个非常易于使用的名为 的路由控制台中为您提供这种灵活性pavucontrol
。可以根据应用程序和系统默认值设置首选设备和后备设备。
答案4
我刚买了 Plantronics 耳机,遇到了同样的问题,解决方法如下http://alsa.opensrc.org/MultipleCards:
编辑/etc/modprobe.d/50-alsa.conf
文件以设置默认顺序:
options snd slots=snd-usb-audio,snd-hda-intel
我还删除了所有其他相关配置,即/etc/modprobe.d/50-sound*
.
我检查了插入/拔出耳机并查看了输出aplay -l
这是使用 openSUSE 12.2 和 Plantronics .Audio 655。