PulseAudio で外部オーディオデバイスを優先する

PulseAudio で外部オーディオデバイスを優先する

私は Bose Soundlink 外部オーディオ デバイスを持っていて、これを使用してコンピューターからステレオに音楽をストリーミングしています。Ubuntu はデバイスを認識しますが、自動的には使用しません。PulseAudio で出力にこのデバイスを使用するには、[サウンド設定] の [出力] タブで手動で選択する必要があります。

外部デバイスが利用可能な場合は、PulseAudio で常に内部デバイスよりも外部デバイスを優先するようにしたいと思います。これを実現する方法はありますか?

答え1

また、モジュールをロードすることも役立ちますmodule-switch-on-connect。次の行を追加すると、

load-module module-switch-on-connect

(もちろん suとして/etc/pulse/default.pa)、スクリプトを呼び出さなくても自動的に実行されるはずです。

ドキュメントモジュールスイッチオン接続これがどのように機能するかについてのより詳細な説明があります。

答え2

理論的には、これはすべき「PulseAudio ボリューム コントロール」で処理されます。デバイスをデフォルト デバイスとして選択するボタンがありますが、「フォールバックとして設定」というタイトルは不適切だと思います。この機能の詳細については、こちらをご覧ください。http://ubuntuguide.org/wiki/Ubuntu_Oneiric_Hardware

残念ながら、この機能は動作しません。USB オーディオ デバイスが取り外されると、音量やバランスなどの他のすべての設定が次回デバイスが接続されたときに保持されているにもかかわらず、デフォルト デバイスとしての設定が忘れられてしまいます。デバイスが取り外されていない場合、この機能は実際に機能する可能性があります。アプリが見つからない場合は、パッケージ「pavucontrol」をインストールしてください。

私は通話に USB ヘッドセットを使用しており、GUI を経由せずに必要に応じて有効または無効にするために 'pacmd' を使用してスクリプトを作成する必要がありました。これにより、必要に応じて切り替えるためのランチャー項目をいくつか追加するだけで済みました。私の場合、ヘッドセットを有効にするスクリプトは次のとおりです。

#!/bin/bash
pacmd "set-default-sink alsa_output.usb-Logitech_Logitech_USB_Headset-00-Headset.analog-stereo"
pacmd "set-default-source alsa_input.usb-Logitech_Logitech_USB_Headset-00-Headset.analog-mono"

内部オーディオに戻すには:

#!/bin/bash
pacmd "set-default-sink alsa_output.usb-Logitech_Logitech_USB_Headset-00-Headset.analog-stereo"
pacmd "set-default-source alsa_input.usb-Logitech_Logitech_USB_Headset-00-Headset.analog-mono"

「pacmd」の使い方は非常に簡単で、ターミナルから実行し、「help」と入力するだけで詳細情報が表示されます。

答え3

Sam Whitlock の回答と似たような回答がありましたが、default.paのファイルを編集する必要がありました~/.config/pulse。 を追加するだけでload-module module-switch-on-connectうまくいきました。

JieLi AC4100/IQ Sound Bluetooth ヘッドセット (ただし USB を使用) を使用して Ubuntu 17.04 を実行しています。

関連情報