De acordo com o meu conhecimento, não há uma solução simples de um clique que nos permita alternar rapidamente de áudio interno para perfil de áudio Bluetooth A2DP e perfil de fone de ouvido Bluetooth HSP.
No entanto, podemos alterar a saída de som da linha de comando, o que nos dá a oportunidade de criar um script para alternar a saída de áudio. Os comandos que precisamos são os seguintes:
-
pacmd list-cards
em listará os cartões disponíveis. Assim que um fone de ouvido for conectado, teremos acesso às propriedades de áudio do Bluetooth. Além disso, podemos agora descobrir o índice da placa pulseaudio e possíveis perfis para os seguintes comandos. -
pacmd set-card-profile <index> <profile>
em altera o perfil de um número de cartão<index>
. Para um cartão Bluetooth, o perfil em questão será dea2dp
para o perfil de áudio ehsp
para o perfil de telefonia do fone de ouvido. -
pacmd set-default-sink
epacmd set-default-source
em vai mudar a saída resp. entrada usada pelo pulseaudio. Isso não pode ser feito durante a reprodução. Veja esta resposta para detalhes sobre como fazer isso.
Abaixo, há um script de exemplo que pode ser usado para alternar a saída de som de um fone de ouvido Bluetooth:
#!/bin/bash
# CLI options: 'a2dp': Audio Profile
# 'hsp': Telephony Profile
# <Index> Default Sink (try '0' or '1')
SINK=$( pacmd list-cards | grep -B 1 bluez )
INDEX=${SINK:10:2}
SINK=$( pacmd list-cards | grep bluez )
MAC=${SINK:19:17}
BT_SINK="bluez_sink.$MAC"
BT_SOURCE="bluez_source.$MAC"
if [ $1 = a2dp ]; then
echo Setting A2DP audio sink $BT_SINK
pacmd set-card-profile $INDEX a2dp
pacmd set-default-sink $BT_SINK
elif [ $1 = hsp ]; then
echo Setting HSP headset sink $BT_SOURCE
pacmd set-card-profile $INDEX hsp
pacmd set-default-sink $BT_SINK
pacmd set-default-source $BT_SOURCE
else
echo Resetting to internal audio
pacmd set-default-sink $1
pacmd set-default-source $1
fi
Copie o script, salve-o como switch-sink
e conceda permissão executável. Em um terminal, mude para o diretório de script e emita o script com as seguintes opções:
switch-sink a2dp # switches to audio profile
switch-sink hsp # switches to headset/telephony profile
switch-sink <index> # switches to sink <index>, e.g. 0 depending on our default
Indique o caminho completo para o script ao executar a partir de um atalho de teclado ou de um arquivo .desktop (para desktop ou launcher).
Nota adicional na placa de som ÍNDICE:
Caso haja mais de 99 placas de som registradas com pulseaudio, este script não funcionará. Isso pode se tornar um problema, pois o ÍNDICE do cartão será aumentado a cada ativação ou reconexão de um dispositivo Bluetooth. Como solução alternativa, podemos alterar a última condição else
para redefinir o servidor pulseaudio (que também carregará nosso coletor de áudio padrão):
else
pulseaudio -k
fi