Вот очень подробное объяснение:
Den3243
Вот решение командной строки:
Во-первых, давайте отсканируем, создадим пару, доверяем вашему устройству с помощью «bluetoothctl». Для этого запустите это в командной строке вашего терминала:
bluetoothctl -a
Вы должны получить другую командную строку, например:
[bluetooth]
Когда ваш динамик BT включен, введите:
scan on
Через несколько секунд вы увидите доступные устройства BT. Рядом с устройством будет его MAC-адрес, например: 00: AA: 22: BB: 33. Теперь введите это:
info <your mac address>
Исключить символы больше и меньше. То, что вы ищете, это какая-то предыдущая связь с вашим оратором BT. Вы будете знать, что была предыдущая ассоциация, потому что bluetoothctl покажет информацию о вашем устройстве BT. Часть этой информации будет о сопряженном и доверенном устройстве. Это хорошо.
Если bluetoothctl жалуется на отсутствие устройства, то нам нужно настроить это в данный момент. Для этого введите:
pair <your mac address>
Вы должны увидеть сообщение об успешном сопряжении вашего устройства. Теперь давайте доверять нашему новому устройству BT. Введите это:
trust <your mac address>
Опять же, вы должны увидеть сообщение об успешном доверии. Позвольте мне заранее предупредить вас. Ваше устройство BT может подключиться, а затем может и не подключиться. Не бойтесь, мы не хотим, чтобы это связывало. Идем дальше и давайте выйдем из "bluetoothctl". Для этого введите:
quit
Теперь вы вернетесь в командную строку. В предыдущем посте я предложил вам создать каталог сценариев в вашем домашнем каталоге. Если нет, продолжайте и сделайте это сейчас. Введите это в командной строке:
mkdir -p ~/scripts
Нажмите enter, и теперь давайте создадим наш скрипт bash для автопары. Введите это:
nano ~/scripts/autopair
Введите этот код в скрипт:
#!/bin/bash
bluetoothctl << EOF
connect [enter your MAC add]
EOF
Исключить скобки!
Теперь нажмите одновременно CTRL + x, а затем нажмите Enter, чтобы сохранить скрипт. Нам нужно сделать его исполняемым. Для этого введите:
chmod +x ~/scripts/autopair
Я предполагаю, что вы не используете внешние аналоговые динамики подключить к разъему 3,5 мм. Если это правда, давайте отключим Alsa. Для этого давайте отредактируем файл в каталоге / boot с именем config.txt. Для этого введите это в своем терминале:
sudo nano /boot/config.txt
Пролистайте страницу до конца файла и найдите две строки:
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
Поместите (знак фунта #) перед строкой, которая гласит:
dtparam=audio=on
Выглядеть:
#dtparam=audio=on
Нажмите CTRL + x, а затем нажмите Enter, чтобы сохранить файл.
Я предполагаю, что у вас есть Pulseaudio установлен? Если нет, продолжайте и запустите эту команду из командной строки:
sudo apt-get update && sudo apt-get install pulseaudio -y
Это даст вам очень важный компонент для работы Bluetooth! Теперь давайте отредактируем наш файл .bashrc в нашем домашнем каталоге. Введите это:
nano ~/.bashrc
Страница вниз и добавьте эту строку:
pulseaudio --start
Нажмите CTRL + x и теперь нажмите Enter, чтобы сохранить ваш файл.
ОК! Нам нужно войти в мир Python. Я написал программу на Python, которая будет следить за устройством Bluetooth. Короче говоря, он активирует соединение между RPi и вашим динамиком Bluetooth, как только ваш динамик Bluetooth будет включен. Наоборот. Давайте создадим каталог с именем python в вашем домашнем каталоге. Для этого введите:
mkdir -p ~/python
Теперь давайте создадим файл программы Python. Для этого введите:
nano ~/python/on.py
Внутри этого файла нам нужно скопировать и вставить следующее:
#!/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()
Теперь нажмите CTRL + x, а затем нажмите Enter, чтобы сохранить файл программы Python. Теперь нам нужно сделать этот файл исполняемым. Для этого введите:
chmod +x ~/python/on.py
Наконец, давайте добавим это в наш скрипт .bashrc в нашем домашнем каталоге:
nano ~/.bashrc
Страница вниз в конец файла и добавить эти две строки:
wait
~/python/on.py
Теперь нажмите CTRL + x, а затем нажмите Enter, чтобы сохранить. Включите динамик Bluetooth и перезагрузите Raspberry Pi.
Удачи!
-nitrolinux
Я обнаружил, что в настоящее время существуют проблемы с pulseaudio5, особенно когда речь идет о воспроизведении аудио через Bluetooth. Поэтому я предлагаю вместо того, чтобы отлаживать их, когда они появляются, просто использовать PulseAudio6 для того, что вы хотите.
Я создал репозиторий, который будет автоматизировать все ниже, так что вам не нужно делать всю работу по ногам, но если вы все еще хотите сделать это самостоятельно, продолжайте ниже.
Репо: https://github.com/BaReinhard/a2dp_bluetooth
Процесс установки:
Дождитесь окончания процесса установки и перезагрузитесь. По окончании вам нужно будет инициализировать, связать, доверять и подключить ваше устройство. По истечении начального времени вам нужно будет только включить устройство.
Сопряжение, доверие и подключение:
-------------------- Полное прохождение игры: --------------------
Компиляция PulseAudio 6
Добавьте следующие файлы
/etc/init.d/pulseaudio
/etc/init.d/bluetooth
Включить новые службы init.d и сделать исполняемым
Убедитесь, что у нас есть все необходимые модули
Перейдите в домашний каталог и установите json-c из исходного кода git (требуется для PA6)
Перейдите в домашний каталог и установите libsndfile из исходного кода git
Убедитесь, что Bluetooth ищет (
sudo hciconfig hci0 piscan
устарел)Перейдите в Домашний каталог и установите PulseAudio 6 из исходного кода git.
Убедитесь, что пульс во всех необходимых группах
Обнови
/etc/pulse/system.pa
и/etc/pulse/daemon.conf
посмотри как следующее:/etc/pulse/system.pa
/etc/pulse/daemon.conf
Настройка правила udev
Отредактируйте
/etc/udev/rules.d/99-com.rules
и добавьте следующие две строки:Создайте
/usr/local/bin/bluez-udev
/ USR / местные / бен / BlueZ-Udev
Убедитесь, что bluez-udev является исполняемым
Резюме
Что здесь делается?
источник
Вы пытались сделать скрипт Bash, который использует hcitool для подключения?
Добавьте исполняемые права на этот файл, затем добавьте его в cron (вы можете выбрать в любое время).
Это сработало для меня, когда я попытался подключиться к клавиатуре Bluetooth. Я не уверен, будет ли это работать для динамика (не уверен, что это другой протокол). Надеюсь это поможет!
источник
нашел это еще лучше
источник