web-dev-qa-db-ja.com

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

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

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

10
HedgeMage

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設定を見つけて、udevルールのRUN+=部分に配置するコマンドにラップすることです。同じハードウェアを持っていないので、私はあなたを助けることができません。

4
rozcietrzewiacz

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

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

https://askubuntu.com/questions/158241/automatically-change-sound-input-output-device/158250#15825

3
John Glassmyer

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

2
Caleb

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

0
Isaac Uribe