如何在插入 USB 耳机时自动切换到 USB 耳机?

如何在插入 USB 耳机时自动切换到 USB 耳机?

我在跑芬图Linux, A根图衍生物。我的两款新 Plantronics USB 耳机(一款有线,一款无线)运行良好。我插入一个,ALSA 会注意到它,如果我手动设置一个应用程序来使用它而不是默认设备,它就会注意到它。

我更愿意简单地让耳机成为我的默认输入/输出(如果存在),否则默认恢复为我的板载扬声器。我如何自动化这种切换?

答案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。

相关内容