Alterne automaticamente o dispositivo de saída de som para o fone de ouvido Bluetooth e force o perfil A2DP na conexão

11

Meu fone de ouvido bluetooth (Plantronics Backbeat Go2) está bem conectado ao meu sistema, mas há várias etapas manuais que preciso executar para fazer esse trabalho que eu gostaria muito de automatizar:

  1. Após cada reinicialização, tenho que executar o pactl load-module module-bluetooth-discover no terminal para fazer com que o dispositivo se conecte. Eu tentei colocar isso em um script de shell para executar na inicialização, mas não há dados :(
  2. Meu fone de ouvido se conecta automaticamente sem problemas, mas sempre o padrão é Telephony Duplex ou até Off, em vez de A2DP; Eu tentei e falhei com várias estratégias diferentes para forçar A2DP :(
  3. Force o fone de ouvido BT a ser o dispositivo de saída padrão. Tentei várias estratégias aqui também ... infelizmente, toda vez que conecto o fone de ouvido, o índice do pacmd parece mudar, então não posso forçar um padrão no arquivo conf da PA set-default-sink dessa maneira. E o uso do nome listado também não parece funcionar - se o fone de ouvido não estiver presente, ele alterna para os alto-falantes e não volta se o fone de ouvido se conectar :(

Obrigado por qualquer conselho que possa ter para resolver esses problemas!

Logotipos
fonte

Respostas:

8

Isso funcionou para mim: https://sandalov.org/blog/2146/

Instruções copiadas aqui para a posteridade:

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
fonte
1
Observação: o comentário "adicionar isso" é importante, pois a linha " .ifexists module-bluetooth-discover.so" já existe. Tentei adicionar as quatro linhas inteiras no final e não funcionou. Apenas a adição de uma linha no local certo funciona.
Fabian Röling
2
no Ubuntu Bionic eu definir AutoConnect=trueem vez de Disable = Headset
develCuy
2

Não é apenas após uma reinicialização, mas também após desconectar e reconectar um dispositivo capaz de ambos os perfis, HSP e A2DP, que o Bluez sempre o conecta no modo HSP (principal).

Não sei em detalhes o que está acontecendo sob o capô (o Bluetooth tem algumas peculiaridades), mas suspeito que estamos conectando um novo dispositivo como fone de ouvido e não como dispositivo de áudio ou AudioSink via dbus.

Parece não haver uma configuração pela qual possamos controlar isso. Não conheço nenhuma configuração que possamos fazer para padronizar um dispositivo Bluetooth para A2DP na conexão (mas não posso excluir que perdi um documento em algum lugar). Isso pode ser considerado um bug.

Em algum momento, escrevi um script para estabelecer conexões Bluetooth usando o perfil de áudio . Este script foi incluído em um pequeno aplicativo GUI Python ( bt-autoconnect na barra de ativação ou através do meu ppa: takkat-nebuk / takkat ) que, entre outros ajustes, faz exatamente isso, mas é mais um hack do que uma solução definida, e infelizmente faz não funcionará com todos os adaptadores ao redor, mas ele conectará meu fone de ouvido Philips no modo A2DP primeiro (embora as configurações de som ainda afirmem que era HFP, mas esse é outro problema).

Takkat
fonte
Obrigado pela entrada Takkat ... Estou pensando que estou com um loop, e será um processo manual :(
Logos