Schalten Sie das Audioausgabegerät automatisch auf Bluetooth-Headset um und erzwingen Sie bei der Verbindung das A2DP-Profil

11

Mein Bluetooth-Headset (Plantronics Backbeat Go2) ist einwandfrei mit meinem System verbunden, aber ich muss einige manuelle Schritte ausführen, damit dies funktioniert, die ich sehr gerne automatisiert hätte:

  1. Nach jedem Neustart muss ich pactl load-module module-bluetooth-Discover im Terminal ausführen, damit das Gerät überhaupt eine Verbindung herstellen kann. Ich habe versucht, dies in ein Shell-Skript zu schreiben, um es beim Start auszuführen, aber keine Würfel :(
  2. Mein Headset stellt ohne Probleme automatisch eine Verbindung her, verwendet jedoch standardmäßig Telefonie-Duplex oder sogar Aus anstelle von A2DP. Ich habe versucht und bin mit verschiedenen Strategien gescheitert, um A2DP zu erzwingen :(
  3. Erzwingen Sie, dass das BT-Headset das Standardausgabegerät ist. Ich habe auch hier verschiedene Strategien ausprobiert ... Leider scheint sich der Index von pacmd jedes Mal zu ändern, wenn ich das Headset anschließe. Daher kann ich auf diese Weise keinen Standard in der PA-Konfigurationsdatei set-default-sink erzwingen. Die Verwendung des aufgelisteten Namens scheint auch nicht zu funktionieren. Wenn das Headset nicht vorhanden ist, wechselt es zu den Lautsprechern und schaltet nicht zurück, wenn das Headset eine Verbindung herstellt :(

Vielen Dank für alle Ratschläge zur Lösung dieser Probleme!

Logos
quelle

Antworten:

8

Das hat bei mir funktioniert: https://sandalov.org/blog/2146/

Anweisungen für die Nachwelt hier kopiert:

Add to /etc/pulse/default.pa to automatically switch pulseaudio sink to Bluez:

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
load-module module-switch-on-connect  # Add this
.endif

Modify/Create /etc/bluetooth/audio.conf to auto select A2DP profile (instead of HSP/HFP):

[General]
Disable=Headset # Add this

Apply changes:

pulseaudio -k # Restarts pulseaudio

# You may need to turn your bluetooth headphones off, then back on
Harvey
quelle
1
Anmerkung: Der Kommentar "add this" ist wichtig, da die Zeile " .ifexists module-bluetooth-discover.so" bereits vorhanden ist. Ich habe zuerst versucht, die gesamten vier Zeilen am Ende hinzuzufügen, aber es hat nicht funktioniert. Nur das Hinzufügen der einen Zeile an der richtigen Stelle funktioniert.
Fabian Röling
2
auf Ubuntu Bionic setze ich AutoConnect=trueeher als Disable = Headset
develCuy
2

Nicht nur nach einem Neustart, sondern auch nach dem Trennen und erneuten Verbinden eines Geräts, das sowohl HSP- als auch A2DP-Profile unterstützt, verbindet Bluez es immer im HSP-Modus (Headest).

Ich kann nicht im Detail sagen, was unter der Haube vor sich geht (Bluetooth hat einige Macken), aber ich vermute, dass wir ein neues Gerät als Headset und nicht als Audio- oder AudioSink- Gerät über dbus anschließen.

Es scheint keine Einstellung zu geben, mit der wir dies steuern können. Mir sind keine Einstellungen bekannt, die wir vornehmen können, um ein Bluetooth-Gerät beim Verbinden standardmäßig auf A2DP zu setzen (aber ich kann nicht ausschließen, dass ich irgendwo eine Dokumentation verpasst habe). Dies kann als Fehler angesehen werden.

Irgendwann habe ich ein Skript geschrieben, um Bluetooth-Verbindungen mithilfe des Audio- Profils herzustellen . Dieses Skript war in einer kleinen GUI-Python-Anwendung enthalten ( bt-autoconnect auf dem Launchpad oder über mein ppa: takkat-nebuk / takkat ), die unter anderem genau dies tut, aber eher ein Hack als eine definitive Lösung ist, und leider auch Funktioniert nicht mit allen Adaptern, aber mein Philips Headset wird zuerst im A2DP-Modus angeschlossen (obwohl die Soundeinstellungen immer noch behaupten, es sei HFP, aber das ist ein weiteres Problem).

Takkat
quelle
Vielen Dank für die Eingabe Takkat ... Ich denke, ich bin gespannt, und es wird ein manueller Prozess sein :(
Logos