USBヘッドセットを接続したときに自動的に切り替えるにはどうすればよいですか?


10

私が実行しているFuntooのLinuxGentooのの誘導体。私の2つの新しいPlantronics USBヘッドセット(1つは有線、もう1つはワイヤレス)は問題なく動作します。プラグインすると、ALSAがそれを認識し、デフォルトのデバイスの代わりにそれを使用するようにアプリケーションを手動で設定した場合は、そのようになります。

ヘッドセットが存在する場合は、単にデフォルトの入力/出力にして、それ以外の場合はデフォルトでオンボードスピーカーに戻すことをお勧めします。この種のスイッチを自動化するにはどうすればよいですか?

回答:


4

udevルールを使用できます。そのためには、USBヘッドセットが接続されたら、それを区別するデバイス属性を見つける必要があります。これは通常、次の2つの手順で実行できます。

  • udevadm monitor --udevデバイスを接続する前に実行します。次に、プラグインします。出力ラインがたくさんあります-1つだけ選択して、そこからデバイスパスをコピーします-のようなものです/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出力します。

タスクの2番目の部分は、amixer各シナリオのニーズに合った設定を見つけてRUN+=、udevルールの部分に配置するコマンドにラップすることです。同じハードウェアを持っていないので、私はあなたを助けることができません。


3

Calebが述べたように、PulseAudioでは、あるデバイスから別のデバイスにストリームを移行できます。

を介して手動ではなく自動的に切り替えるにはpavucontrol、次のようにmodule-switch-on-connectモジュールをPulseAudio設定に追加します。

/ubuntu/158241/automatically-change-sound-input-output-device/158250#158250


1
また、PAを制御するためのCLI組み込みツールがあることにも注意してください(pacmdおよびpactl)。
HalosGhost 2014年

2

まだ持っていない場合は、pulseaudioと呼ばれる非常に使いやすいルーティングコンソールでこの種の柔軟性が得られますpavucontrol。優先デバイスとフォールバックデバイスは、アプリケーションとシステムのデフォルトごとに設定できます。


1
また、出力デバイスの変更はアプリケーションに対して透過的です(pulsausioを使用する場合)-たとえば出力デバイスの変更のためにアプリケーションを再起動する必要はありません-再生中に出力デバイスを変更することも可能です。
maxschlepzig 2011

0

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を使用していました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.