Cambia automáticamente el dispositivo de salida de sonido a auriculares Bluetooth y fuerza al perfil A2DP en la conexión

11

Mis auriculares bluetooth (Plantronics Backbeat Go2) están bien conectados con mi sistema, pero hay varios pasos manuales que debo seguir para que esto funcione y me gustaría mucho que los automatizara:

  1. Después de cada reinicio, tengo que ejecutar pactl load-module module-bluetooth-discover en el terminal para que el dispositivo se conecte. Traté de poner esto en un script de shell para ejecutar al inicio, pero no dice :(
  2. Mi auricular se conecta automáticamente sin problemas, pero siempre se establece de manera predeterminada en Telefonía dúplex o incluso en Apagado en lugar de A2DP; He intentado y he fallado con varias estrategias diferentes para forzar A2DP :(
  3. Obliga a los auriculares BT a ser el dispositivo de salida predeterminado. También probé varias estrategias aquí ... desafortunadamente cada vez que conecto el auricular, el índice de pacmd parece cambiar, por lo que no puedo forzar un valor predeterminado en el archivo de configuración PA set-default-sink de esa manera. Y el uso del nombre que aparece en la lista tampoco parece funcionar: si el auricular no está presente, cambia a los altavoces y no vuelve a cambiar si el auricular se conecta :(

¡Gracias por cualquier consejo que pueda tener para resolver estos problemas!

Logos
fuente

Respuestas:

8

Esto funcionó para mí: https://sandalov.org/blog/2146/

Instrucciones copiadas aquí para la posteridad:

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
fuente
1
Observación: El comentario "agregar esto" es importante, ya que la línea " .ifexists module-bluetooth-discover.so" ya existe. Al principio intenté agregar las cuatro líneas completas al final y no funcionó. Solo funciona agregar una línea en el lugar correcto.
Fabian Röling
2
en Ubuntu Bionic configuré en AutoConnect=truelugar de Disable = Headset
develCuy
Tenga en cuenta que después de PulseAudio versión 11, auto_switch se convirtió en un entero, por lo que necesita un valor como 0, 1, 2 dependiendo de la funcionalidad de cambio automático que necesita: freedesktop.org/wiki/Software/PulseAudio/Notes/11.0
mitsos1os
2

No solo es después de reiniciar, sino también después de desconectar y volver a conectar un dispositivo capaz de ambos perfiles, HSP y A2DP, que Bluez siempre lo conecta en modo HSP (más pesado).

No puedo decir en detalle qué sucede debajo del capó (Bluetooth tiene algunas peculiaridades), pero sospecho que estamos conectando un nuevo dispositivo como Auricular en lugar de un dispositivo Audio o AudioSink a través de dbus.

Parece que no hay una configuración por la cual podamos controlar esto. No conozco ninguna configuración que podamos hacer para que un dispositivo Bluetooth tenga un valor predeterminado de A2DP al conectarse (pero no puedo excluir que me haya perdido una pieza de documentación en alguna parte). Esto puede considerarse un error.

En algún momento escribí un script para establecer conexiones Bluetooth usando el perfil de audio . Este script se incluyó en una pequeña aplicación GUI Python ( bt-autoconnect en launchpad o a través de mi ppa: takkat-nebuk / takkat ) que, entre otros ajustes, hace exactamente esto, pero es más un truco que una solución definitiva, y lamentablemente lo hace no funciona con todos los adaptadores, pero primero conectará mis auriculares Philips en modo A2DP (a pesar de que la configuración de sonido todavía dice que era HFP, pero ese es otro problema).

Takkat
fuente
Gracias por el aporte Takkat ... Creo que estoy enganchado, y será un proceso manual :(
Logos