我跑Funtoo的Linux,一个Gentoo的衍生物。我的两个新的Plantronics USB耳机(一个有线,一个无线)运行良好。我插入一个,ALSA注意到了,如果我手动设置一个应用程序使用它而不是默认设备,它将使用。
我希望只让耳机在出现时成为我的默认输入/输出,否则将默认值恢复为板载扬声器。如何自动进行这种切换?
我跑Funtoo的Linux,一个Gentoo的衍生物。我的两个新的Plantronics USB耳机(一个有线,一个无线)运行良好。我插入一个,ALSA注意到了,如果我手动设置一个应用程序使用它而不是默认设备,它将使用。
我希望只让耳机在出现时成为我的默认输入/输出,否则将默认值恢复为板载扬声器。如何自动进行这种切换?
Answers:
您可以使用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规则中的命令中。有了这个,由于我没有类似的硬件,我无能为力。
正如Caleb所述,PulseAudio可让您将流从一台设备迁移到另一台设备。
要自动切换而不是手动切换,请按如下所述pavucontrol
将module-switch-on-connect
模块添加到PulseAudio配置中:
/ubuntu/158241/automatically-change-sound-input-output-device/158250#158250
如果您还没有的话,pulseaudio
可以在名为的真正易于使用的路由控制台中为您提供这种灵活性pavucontrol
。可以根据应用程序和系统默认设置设置首选设备和备用设备。
我刚刚购买了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。
pacmd
和pactl
)。