Para usar sua máquina Ubuntu como um dispositivo Bluetooth a2dp, você deve primeiro configurá-lo para registrar-se como um terminal "a2dp sink".
O pacote bluez no Ubuntu (10.04 e superior) inclui um utilitário chamado sdptool que pode ser usado para verificar se um dispositivo Bluetooth está configurado como um coletor a2dp ou não. Aqui está a saída do sdptool executada no meu fone de ouvido Bluetooth (o endereço está sendo retirado da caixa de diálogo "Configurações do Bluetooth" no centro de controle do gnome):
$ sdptool search --bdaddr 00:18:16:3A:3B:D4 a2snk
Searching for a2snk on 00:18:16:3A:3B:D4 ...
Service RecHandle: 0x10002
Service Class ID List:
"Audio Sink" (0x110b)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x102
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0102
$
e aqui está a saída quando executada na minha máquina Ubuntu local:
$ sdptool search --bdaddr local a2snk
Searching for a2snk on FF:FF:FF:00:00:00 ...
$
Isso mostra que a máquina Ubuntu não está se anunciando como um coletor a2dp. No entanto, ele está anunciando como uma fonte a2dp:
$ sdptool search --bdaddr local a2src
Searching for a2src on FF:FF:FF:00:00:00 ...
Service Name: Audio Source
Service RecHandle: 0x10003
Service Class ID List:
"Audio Source" (0x110a)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x102
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0102
Isso permite que a máquina Ubuntu emparelhe corretamente com o fone de ouvido como fonte de áudio, mas não permite usar a máquina Ubuntu como saída (coletor) de áudio Bluetooth.
Se você editar /etc/bluetooth/audio.conf
, poderá ativar o suporte ao coletor a2dp adicionando esta linha abaixo da [General]
seção:
Enable=Source
Os dois são nomeados de maneira contra-intuitiva - já que estamos adicionando aqui suporte a coletor Bluetooth, não a fonte - e em contradição com o comentário neste arquivo que afirma que todos os serviços implementados estão ativados por padrão. :(
Depois de fazer essa alteração, você precisará reiniciar o bluetoothd executando sudo service bluetooth restart
.
Se você emparelhou anteriormente seu dispositivo Android e o computador Ubuntu ao tentar obter este trabalho, será necessário excluir o emparelhamento dos dois lados e emparelhá-los novamente para que o Android reconheça o Ubuntu como um dispositivo de áudio disponível.
Depois de fazer isso, o dispositivo Android deve aparecer como um dispositivo de entrada no PulseAudio. Se o PulseAudio não detectar a nova fonte de áudio Bluetooth, pode ser necessário instalar e carregar o módulo Bluetooth, na linha de comando:
sudo apt-get install pulseaudio-module-bluetooth
pactl load-module module-bluetooth-discover
Em seguida, você precisa informar ao PulseAudio para direcionar essa entrada de áudio para sua saída / coletor (como os alto-falantes ou um fone de ouvido Bluetooth) usando uma conexão de loopback (uma linha reta de uma fonte para um coletor).
Versões posteriores do PulseAudio podem ter políticas de módulo bluetooth incluídas e ele já pode ter configurado um dispositivo de loopback para você, mas esse não parece ser o caso mais comum.
Uma maneira semi-automática de configurar a conexão de loopback - se você também tiver o programa GUI pavucontrol instalado - é simplesmente carregar o módulo de loopback e configurá-lo usando o pavucontrol, pois o PulseAudio lembrará as configurações. O carregamento do módulo é feito a partir do comando usando pactl:
pactl load-module module-loopback
Não tema se você não ouvir nada ainda, ou se receber efeitos de feedback estranhos, precisamos informar ao dispositivo recém-criado de qual fonte obter entrada e qual coletor para enviar a saída primeiro.
Abra o pavucontrol e abra a guia Configuration. Verifique se o dispositivo Bluetooth aparece aqui (depois de emparelhá-lo usando o blueman-manager ou outra ferramenta Bluetooth) e se o perfil está definido como A2DP. Alterne para a guia Dispositivos de entrada e verifique se o dispositivo também aparece aqui e se não está sem som. Agora mude para a guia Gravação e faça com que a conexão de loopback recém-criada use seu dispositivo como fonte com a caixa de seleção ao lado do botão mudo. Alterne para a guia Reprodução para selecionar o coletor que a conexão de loopback deve usar da mesma maneira. Se o dispositivo de loopback não aparecer nas guias, verifique se todos os fluxos são exibidos usando a caixa de seleção na parte inferior de cada guia.
Agora você deve ouvir o áudio do seu dispositivo, se estiver sendo reproduzido, nos alto-falantes ou em qualquer saída que você selecionar. Quando o dispositivo é desconectado, o dispositivo de loopback faz o fallback para um coletor e uma fonte disponíveis, o que pode não ser desejável; portanto, mude o dispositivo de loopback até precisar dele. A conexão de loopback restaurará o mesmo coletor / fonte na próxima vez que o mesmo dispositivo Bluetooth for conectado, graças ao módulo - * - módulos de restauração.
Se isso não funcionar , ou você não tiver o pavucontrol instalado, poderá configurar o loopback usando o seguinte método:
pactl load-module module-loopback source_dont_move=yes source=$BTSOURCE sink=$SINK
(Substitua $BTSOURCE
pelo nome da fonte do seu dispositivo Bluetooth como visto pelo PulseAudio, por exemplo bluez_source.14_DA_E9_2A_D7_57
; e substitua $SINK
pelo nome da saída do PulseAudio para a qual você deseja enviar o fluxo de áudio, por exemplo: alsa_output.pci-0000_00_1b.0.analog-stereo
Você pode deixar de fora o argumento do coletor e fazer com que ele se recupere para uma pia ativa e altere-a posteriormente via pavucontrol.)
- Você pode encontrar
$SINK
com pactl list sinks
, é mostrado depoisName:
- Da mesma forma, você pode ver o
$BTSOURCE
compactl list sources
- O
source_dont_move
argumento impede que a conexão de loopback volte para outra fonte de áudio quando o dispositivo Bluetooth estiver desconectado. Em vez disso, ele é removido e você precisará configurá-lo novamente na próxima vez.
Veja como um exemplo seria (lembre-se de substituir o :
por _
no endereço Bluetooth!):
pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
Se o carregamento do módulo fallback falhar, tente remover o source_dont_move=yes
argumento, que foi disponibilizado primeiro na versão 1.0. No entanto, tenha cuidado ao remover essa conexão de loopback antes de soltar esse áudio ou, por exemplo, se o microfone do seu laptop estiver sem som, você poderá receber um feedback muito ruim. Para descartar essa conexão de loopback manualmente quando terminar, execute:
pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)
Mais uma vez, substitua $BTSOURCE
pelo nome da fonte PulseAudio que se refere ao seu dispositivo Bluetooth. Você também pode descarregar o módulo usando o ID retornado pelo comando load-module:
$ pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
15
$ pactl unload-module 15
Referências:
- Postagem em blog descrevendo alguns dos detalhes de como isso está sendo corrigido no Ubuntu.
pactl load-module module-bluethooth-discover
falha no ubuntu studio 14.04. Portanto, não vejo nenhumabluez
fontepulseaudio
, mesmo que meu telefone veja corretamente o PC como um coletor de áudio. Alguma ideia?pactl list sources short
não mostrar a fonte bluez para você, encontrei duas soluções possíveis: chamegdbus call --system --dest org.bluez --object-path /org/bluez/XXX/hci0/dev_XX_XX_XX_XX_XX_XX --method org.bluez.AudioSource.Connect
where (o caminho inclui o endereço BD do dispositivo e o caminho do adaptador com o qual você pode encontrargdbus call --system --dest org.bluez --object-path / --method org.bluez.Manager.DefaultAdapter
). Ou use d-feet como explicado aqui . Caso contrário, conecte no lado do telefone e comece a tocar alguma coisa.Eu uso o blueman, instalado no centro de software Ubuntu. Clique com o botão direito do mouse no ícone blueman * -> "serviços locais" -> áudio-> Marque a opção "recepção avançada de áudio". Btw eu usá-lo para ouvir no meu laptop Ubuntu 11.10 o que eu jogo no meu telefone Android.
* O ícone blueman é mostrado no canto inferior direito no shell gnome + ubuntu 11.10, esse é o meu caso. Espero que isso seja útil de alguma forma para você.
fonte
É realmente simples agora no Ubuntu 12.04
Conecte seu dispositivo bluetooth
Procure o seu dispositivo bluetooth e anote o número da fonte:
Faça um loopback para o dispositivo bluetooth:
Onde $ SOURCE_NUMBER é o número que você anotou anteriormente.
Por exemplo, digitei o seguinte para fazer com que a reprodução de áudio funcione:
É isso aí! Achei a solução na resposta superior um pouco complicada, então a simplifiquei dessa maneira (muito menos digitação e cópia / colagem). Embora minha solução provavelmente seja interrompida se você remover qualquer dispositivo de áudio listado antes do dispositivo bluetooth por
pactl list sources
.Além disso, não se esqueça de remover o módulo de loopback antes de desconectar o dispositivo bluetooth:
Anote o número do módulo do dispositivo de loopback que você criou:
Remova o dispositivo de loopback:
As respostas anteriores foram escritas antes do lançamento do 12.04, então eu tenho certeza que houve algumas mudanças. Por exemplo, eu não precisei ativar manualmente o uso de dispositivos bluetooth como fonte de áudio (ela foi ativada por padrão). No entanto, às vezes tenho que alternar o perfil "Media Audio" nas configurações de bluetooth do meu telefone (Samsung Captivate executando o CyanogenMod 9.1.0).
Provavelmente existe uma maneira de alavancar o dbus-monitor usando um script de shell para observar as conexões do dispositivo A2DP bluetooth e carregar automaticamente um módulo de loopback, mas isso é um pouco demais.
Espero que não precisemos mais fazer isso manualmente no Ubuntu 12.10.
fonte
Para o 13.04, emparelhe o seu dispositivo de origem com o laptop ubuntu e ele simplesmente funciona! Muito legal descobrir que agora era fácil.
fonte
No Ubuntu 16.04, isso funciona imediatamente.
fonte
Solução ainda mais fácil que a resposta.
Você pode simplesmente ir
Então reinicie. Após a reinicialização, conecte-se ao seu Bluetooth e simplesmente toque a música no seu telefone. Tudo será transmitido ao seu computador e reproduzido nos alto-falantes do computador.
E sim! de nada.
fonte
apt-get
usa expressões regulares, não curingas. Portanto, você não tem idéia do que será instalado usandopulseaudio*
(dica: não são apenas os pacotes que começam compulseaudi
). E o PulseAudio já faz parte da instalação padrão do Ubuntu.