Aqui está uma explicação muito detalhada:
Den3243
Aqui está uma solução de linha de comando:
Primeiro, vamos digitalizar, emparelhar, confiar no seu dispositivo com "bluetoothctl". Para fazer isso, execute isso na linha de comando, no seu terminal:
bluetoothctl -a
Você deve obter um prompt de comando diferente, como:
[bluetooth]
Com o alto-falante BT ativado, digite o seguinte:
scan on
Em alguns instantes, você deverá ver os dispositivos BT disponíveis. Ao lado do dispositivo estará o endereço MAC, como: 00: AA: 22: BB: 33. Agora digite isso:
info <your mac address>
Exclua os caracteres maior que e menor que. O que você procura é algum tipo de associação anterior ao seu orador da BT. Você saberá que houve uma associação anterior porque o bluetoothctl mostrará informações sobre o seu dispositivo BT. Algumas dessas informações serão sobre o dispositivo emparelhado e confiável. Isso é bom.
Se o bluetoothctl reclamar que não há dispositivo, precisamos configurá-lo neste momento. Para fazer isso, digite o seguinte:
pair <your mac address>
Você deverá receber uma mensagem de sucesso sobre o pareamento do seu dispositivo com sucesso. Agora vamos confiar em nosso novo dispositivo BT. Digite isto:
trust <your mac address>
Novamente, você deve receber uma mensagem de sucesso sobre confiar. Deixe-me avisá-lo. O seu dispositivo BT pode conectar-se novamente. Não tenha medo, não queremos que ele se conecte. Vá em frente e vamos sair "bluetoothctl". Para fazer isso, digite:
quit
Agora você será levado de volta ao prompt da linha de comando. Em um post anterior, sugeri que você crie um diretório de scripts em seu diretório pessoal. Se você não tiver, vá em frente e faça isso agora. Digite isso no prompt de comando:
mkdir -p ~/scripts
Pressione enter e agora vamos criar nosso script basop de autopair. Digite isto:
nano ~/scripts/autopair
Digite este código no script:
#!/bin/bash
bluetoothctl << EOF
connect [enter your MAC add]
EOF
Exclua os colchetes!
Agora pressione CTRL + x ao mesmo tempo e agora pressione enter para salvar o script. Precisamos torná-lo executável. Para fazer isso, digite o seguinte:
chmod +x ~/scripts/autopair
Suponho que você não use alto-falantes analógicos externos na tomada de 3,5 mm. Se isso for verdade, vamos desativar o alsa. Para fazer isso, vamos editar um arquivo no diretório / boot chamado config.txt. Para fazer isso, digite isto em seu terminal:
sudo nano /boot/config.txt
Vá até a parte inferior do arquivo e procure duas linhas que se lêem:
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
Coloque um (sinal de cerquilha #) na frente da linha que diz:
dtparam=audio=on
Se parecer:
#dtparam=audio=on
Pressione CTRL + xe pressione Enter para salvar seu arquivo.
Suponho que você tenha o pulseaudio instalado? Caso contrário, vá em frente e execute este comando na linha de comando:
sudo apt-get update && sudo apt-get install pulseaudio -y
Isso lhe dará um componente muito importante para fazer o bluetooth funcionar! Agora vamos editar nosso arquivo .bashrc em nosso diretório pessoal. Digite isto:
nano ~/.bashrc
Desça até a parte inferior e adicione esta linha:
pulseaudio --start
Pressione CTRL + xe agora pressione Enter para salvar seu arquivo.
ESTÁ BEM! Precisamos entrar no mundo Python. Eu escrevi um programa Python que observará o dispositivo bluetooth. Em resumo, ele ativará a conexão entre o RPi e o alto-falante bluetooth, assim que o alto-falante estiver ligado. E vice versa. Vamos criar um diretório chamado python no seu diretório pessoal. Para fazer isso, digite o seguinte:
mkdir -p ~/python
Agora vamos criar o arquivo de programa python. Para fazer isso, digite o seguinte:
nano ~/python/on.py
Dentro desse arquivo, precisamos copiar e colar o seguinte:
#!/usr/bin/python
#
# Monitor removal of bluetooth reciever
import os
import sys
import subprocess
import time
def blue_it():
status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
while status == 0:
print("Bluetooth UP")
print(status)
time.sleep(15)
status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
else:
waiting()
def waiting():
subprocess.call('killall -9 pulseaudio', shell=True)
time.sleep(3)
subprocess.call('pulseaudio --start', shell=True)
time.sleep(2)
status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
while status == 2:
print("Bluetooth DOWN")
print(status)
subprocess.call('~/scripts/autopair', shell=True)
time.sleep(15)
status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
else:
blue_it()
blue_it()
Agora pressione CTRL + xe pressione Enter para salvar o arquivo de programa Python. Agora precisamos tornar este arquivo executável. Para fazer isso, digite o seguinte:
chmod +x ~/python/on.py
Por fim, vamos adicionar isso ao nosso script .bashrc em nosso diretório inicial:
nano ~/.bashrc
Vá para a parte inferior do arquivo e adicione estas duas linhas:
wait
~/python/on.py
Agora pressione CTRL + xe pressione Enter para salvar. Ligue o alto-falante Bluetooth e reinicie o Raspberry Pi.
Boa sorte!
-nitrolinux
Descobri que há problemas atuais com o pulseaudio5, especialmente quando se trata de reprodução de áudio por bluetooth. Como tal, proponho que, em vez de precisar depurá-los, eles simplesmente usem o PulseAudio6 para o que você deseja.
Eu criei um repositório que automatizará tudo abaixo, para que você não precise fazer todo o trabalho da perna, mas se você ainda estiver fazendo isso, continue abaixo.
Repo: https://github.com/BaReinhard/a2dp_bluetooth
Processo de instalação:
Aguarde até que o processo de instalação seja concluído e reinicie. Ao terminar, você precisará inicializar, emparelhar, confiar e conectar seu dispositivo. Após o horário inicial, você só precisará ligar o dispositivo.
Emparelhar, confiar e conectar:
-------------------- Passo a passo completo: --------------------
Compilando o PulseAudio 6
Adicione os seguintes arquivos
/etc/init.d/pulseaudio
/etc/init.d/bluetooth
Ative novos serviços init.d e torne executável
Verifique se temos todos os módulos necessários
Altere para o diretório inicial e instale o json-c a partir da fonte git (necessário para o PA6)
Mude para o diretório inicial e instale o libsndfile a partir do código-fonte git
Verifique se o Bluetooth está pesquisando (
sudo hciconfig hci0 piscan
está obsoleto)Navegue para o diretório inicial e instale o PulseAudio 6 da fonte git
Verifique se o pulso está em todos os grupos necessários
Atualize
/etc/pulse/system.pa
e/etc/pulse/daemon.conf
procure o seguinte:/etc/pulse/system.pa
/etc/pulse/daemon.conf
Regra do udev da instalação
Edite
/etc/udev/rules.d/99-com.rules
e adicione as duas linhas a seguir:Crio
/usr/local/bin/bluez-udev
/ usr / local / bin / bluez-udev
Verifique se o bluez-udev é executável
Sumário
O que está sendo feito aqui?
fonte
Você já tentou criar um script Bash que usa o hcitool para se conectar?
Adicione direitos executáveis a esse arquivo e adicione-o ao cron (você pode escolher a qualquer momento).
Isso funcionou para mim quando tentei me conectar a um teclado Bluetooth. Não tenho certeza se funcionará para um alto-falante (não tenho certeza se é um protocolo diferente). Espero que isto ajude!
fonte
achou isso ainda melhor
fonte