USBヘッドフォンが接続されたら自動的にUSBヘッドフォンに切り替えるにはどうすればよいですか?

USBヘッドフォンが接続されたら自動的にUSBヘッドフォンに切り替えるにはどうすればよいですか?

私は走っているFintuLinux、ㅏルート図誘導体私の新しいPlantronics USBヘッドセット2つ(有線1つ、ワイヤレス1つ)がうまく機能します。 1つを接続すると、ALSAはそれに気づき、デフォルトのデバイスではなくそれを使用するようにアプリを手動で設定すると、ALSAはそれに気づきます。

ヘッドフォンがある場合は、デフォルトの入力/出力に設定することを好みます。それ以外の場合、基本は内蔵スピーカーに戻ります。このスイッチをどのように自動化できますか?

答え1

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ルールセクションに入れるコマンドでラップすることです。同様のハードウェアがないため、この問題については役に立ちません。

答え2

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

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

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

関連情報