ここでは、ミント17 + MATEを使用しました。私のBluetoothヘッドセット(Plantronics Backbeat Go2)は私のシステムに正しく接続されていますが、これを行うにはいくつかの手動手順を実行する必要があります。このタスクを自動化したいと思います。
- 再起動するたびにデバイスを完全に接続するには、端末でpactl load-module module-bluetooth-discoverを実行する必要があります。起動時に実行するためにシェルスクリプトに入れようとしましたが、サイコロはありません。
- 私のヘッドセットは問題なく自動的に接続されますが、A2DPではなく常に「Phone Duplex」または「Off」にもデフォルト設定されています。 A2DPを強制するためにいくつかの異なる戦略を試しましたが、すべて失敗しました。
- BTヘッドフォンをデフォルトの出力デバイスに強制します。ここでもいくつかの戦略を試してみました...残念ながら、pacmdのインデックスはヘッドセットを接続するたびに変更されているため、PA confファイルset-default-sinkではこの方法でデフォルトを強制することはできません。そして、リストされた名前を使用しても機能しないようです。ヘッドフォンがない場合はスピーカーに切り替わり、ヘッドフォンが接続されていると再び切り替えられません。
これらの問題を解決する方法の提案をありがとうございます!
答え1
#3に関する私の解決策は次のとおりです。
- 他のすべてのデバイスをマージする統合デバイスを追加する(すべてのデバイスに同時に出力)
- 基本出力装置として使用
- BTヘッドフォンを除く他のすべての物理出力をミュートします。
これの利点は、すべてのプログラムが接続しているかどうかにかかわらず、BTヘッドセットに出力を送信できることです。その後、ヘッドセットが接続されると、音の受信が始まります。
これを行う場合は、統合出力を制御するにはボリュームコントロールのみを使用してflat-volumes = no
設定する必要があります。/etc/pulse/daemon.conf
答え2
udevルールを使用して接続時にプロファイルを切り替えるソリューション(または他のpulseaudioコマンドを実行):
ACTION=="add", SUBSYSTEM=="input", ATTR{phys}=="<your headset addr>", RUN+="/usr/bin/su - <your username> -c '/usr/bin/pactl set-card-profile <your card id> a2dp_sink'"
その他の設定ファイルオプションには、「handsfree_head_unit」、「headset_head_unit」、および「off」が含まれます。
次の方法でカードIDを取得できます。
pactl list cards short
答え3
最初の問題は、Pulse Audioが起動後にBluetoothモジュールをアンロードするために発生するため、起動スクリプトに入れても数秒後にアンロードされます。
プランA
たとえば、スクリプトに開始遅延を追加するだけです。
sleep 10 && pactl load-module module-bluetooth-discover
プランB(推奨)
- Bluetooth/パルスオーディオプラグインを無効にします。
- Bluetoothアイコンを右クリックしてプラグインを選択し、Pulse Audioプラグインの選択を解除します。
- 再起動。
申し訳ありません。残りの2つの質問には回答できません。