Предупреждение
Последний источник использует новые имена для некоторых основных компонентов:
bluealsa
теперь называется bluealsad
bluealsa-cli
теперь называется bluealsactl
См. Вики -гид, мигрирующий из релиза 4.3.1 или раньше для получения дополнительной информации.
Этот проект представляет собой перерождение прямой интеграции между Bluez и ALSA. С момента Bluez> = 5 встроенная интеграция была удалена в пользу сторонних приложений аудио. Отныне Bluez действует как промежуточное программное обеспечение между аудио -приложением, которое реализует аудиопрофил Bluetooth и аудиоустройство Bluetooth.
Текущий статус-кво заключается в том, что для потоковой передачи звука с/на устройство Bluetooth нужно установить аудио-сервер общего назначения, такой как Pipwire или PulseAudio, или использовать Bluez версию 4, который устарел и не является неизменным.
Этот проект создал и поддерживает продукт под названием Bluealsa, с которым можно достичь одной и той же поддержки звука Bluetooth, что и при pulseaudio, но с меньшим количеством зависимостей и на более низком уровне в программном стеке. Bluealsa регистрирует все известные профили звука Bluetooth в Bluez, поэтому теоретически может быть подключено каждое устройство Bluetooth (с возможностями аудио).
Bluealsa разработана специально для использования на небольших, низкомосных, выделенных аудио или аудио/визуальных системах, где высокоуровневые функции управления звуком PulseAudio или Pipeire не требуются. Целевая система должна быть в состоянии правильно функционировать со всеми его аудиоприложениями, которые напрямую взаимодействуют с ALSA, с одним приложением за раз, используя каждый аудио -поток Bluetooth. В таких системах Bluealsa добавляет поддержку Bluetooth Audio к существующей поддержке звуковой карты ALSA. Примечание это означает, что приложения ограничены возможностями API ALSA, и функции обработки звука более высокого уровня аудио серверов, таких как PulseAudio и Pipewire, недоступны.
Bluealsa состоит из Daemon bluealsad
, плагинов ALSA и ряда коммунальных услуг. Основной контекст показан на этой диаграмме:
Блок -схема TD
ClassDef Внешнее наполнение:#EEE, ход:#333, ширина хода: 4px, цвет: черный;
ClassDef Bluealsa Fill:#BBF, ход:#333, ширина хода: 4PX, цвет: черный;
[Адаптер Bluetooth] <--> b ((Bluetoothd <br/> daemon))
A <--> c ((Daemon Bluealsad))
B <-dbus-> c
C <-dbus-> g ((bluealsactl))
C <-dbus-> d ((Bluealsa-Aplay))
D -> e ([alsa libasound])
E -> k [докладчики]
C <-dbus-> f ((Bluealsa <br/> Alsa Plugins))
F <-> h ([alsa libasound])
H <--> i ((alsa <br/> приложения))
C <-dbus-> j (("Другое d-bus <br/> клиенты"))
C <-> l ((alsa midi <br/> sequencer)))
L <-> m ([alsa libasound])
M <--> n ((alsa midi <br/> применение))
Класс A, B, E, H, I, J, K, L, M, N внешняя;
Класс C, D, F, G Bluealsa;
Сердцем Bluealsa является Daemon bluealsad
, который взаимодействует с Bluez Bluetooth Daemon bluetoothd
и местным адаптером Bluetooth. Он обрабатывает подключение к профилю и логику конфигурации для A2DP, HFP и HSP и представляет полученные аудиотоки для приложений через D-BUS.
BlueAlsa включает в себя плагины ALSA, которые скрывают все специфики D-BUS и разрешают приложения для использования интерфейсов ALSA и миксера, так что существующие приложения ALSA могут получить доступ к аудиоустройкам Bluetooth так же, как они используют Sound Card PCM и смесители.
В случае BLE MIDI Daemon создает простой MIDI -порт непосредственно в Sequencer ALSA MIDI, так что приложение ALSA MIDI может подключаться к удаленному устройству BLE MIDI так же, как оно подключилось к локальному устройству MIDI.
Bluealsa также включает в себя ряд приложений для утилиты. Особо следует отметить:
Bluealsactl
Приложение, позволяющее управлять командной строкой системы Bluealsa.
Bluealsa-Aplay
Приложение для упрощения задачи создания динамика Bluetooth с использованием Bluealsa.
Bluealsa-rfcomm
приложение командной строки, которое обеспечивает доступ к терминалу RFCOMM для устройств HFP/HSP.
Инструкции по сборке и установке включены в файл stall.md, и в вики доступно более подробное руководство.
Основным компонентом Bluealsa является программа под названием bluealsad
. По умолчанию эта программа должна выполняться как корень во время запуска системы. Он зарегистрирует сервис org.bluealsa
в системной шине D-BUS, которую можно использовать для доступа к настроенным аудиоустройствам. В целом, Bluealsa действует как прокси между Bluez и ALSA.
Демон bluealsad
должен работать, чтобы соединить, подключить и использовать удаленные аудиоустройства Bluetooth. Чтобы транслировать аудио в гарнитуру Bluetooth, сначала нужно подключить устройство. Если вы не знакомы с процедурами спаривания Bluetooth и соединения на Linux, в вики: Bluetooth есть основное руководство: Bluetooth.
Для получения подробной информации о вариантах командной строки bluealsad
, обратитесь к странице руководства Bluealsad.
Когда подключено аудиоустройство Bluetooth, можно использовать виртуальное устройство bluealsa
Virtual PCM с приложениями ALSA, как и любое другое устройство PCM:
aplay -D bluealsa Bourree_in_E_minor.wav
Если подключено более одного устройства Bluetooth, цель может быть указана как параметр для PCM:
aplay -D bluealsa:XX:XX:XX:XX:XX:XX, Bourree_in_E_minor.wav
Обратите внимание, что это устройство PCM основано на плагинте ALSA Software PCM ввода -вывода - у него нет связанной звуковой карты, и оно не будет доступно в интерфейсе ALSA Kernel Proc.
Параметры настройки устройства bluealsa
PCM можно установить в локальном файле конфигурации .asoundrc
, как это:
cat ~ /.asoundrc
defaults.bluealsa.service " org.bluealsa "
defaults.bluealsa.device " XX:XX:XX:XX:XX:XX "
defaults.bluealsa.profile " a2dp "
defaults.bluealsa.delay 10000
Bluealsa также позволяет захватывать звук с подключенного устройства Bluetooth. Для этого нужно использовать устройство PCM Capture, например:
arecord -D bluealsa -f s16_le -c 2 -r 48000 capture.wav
В дополнение к профилю A2DP, используемому для высококачественного звука, Bluealsa также позволяет использовать аудио подключение к телефонам по ссылке SCO. Можно использовать любую встроенную поддержку HSP/HFP, которая реализует только аудио, связанную с аудио-частью спецификации, либо использование службы Ofono в качестве бэк-энда. Чтобы открыть Audio Connection SCO, один должен переключиться на профиль sco
, как следует:
aplay -D bluealsa:DEV=XX:XX:XX:XX:XX:XX,PROFILE=sco Bourree_in_E_minor.wav
Чтобы управлять входным или выходным уровнем аудио, можно использовать предоставленный плагин управления bluealsa
. Этот плагин позволяет регулировать громкость аудио-потока или просто отключить/включить его, например:
amixer -D bluealsa sset ' <control name> ' 70%
где управляющее имя является названием подключенного устройства Bluetooth с суффиксом элемента управления, например:
amixer -D bluealsa sset ' Jabra MOVE v2.3.0 A2DP ' 50%
Для получения полной информации о устройстве Bluealsa Alsa PCM и устройстве микшера обратитесь к странице плагинов Bluealsa.
Есть также ряд статей о вики проекта Bluez-Alsa, приведенные больше примеров использования этих плагинов.
Для получения более продвинутой конфигурации ALSA обратитесь к онлайн-документации ASOUNDRC, предоставленной на странице вики ALSAPROJECT.
Можно создать динамик с мощностью Bluetooth, используя Bluealsa. Для этого необходимо перенаправить аудиосигнал из PCM Capture Bluealsa на какой-то другой PCM воспроизведения (например, встроенная аудиокарта). Чтобы упростить эту задачу, Bluealsa включает в себя программу под названием bluealsa-aplay
, которая действует как простой игрок Bluealsa. Подключите устройство Bluetooth (например, смартфон) и сделайте следующее:
bluealsa-aplay XX:XX:XX:XX:XX:XX
Для получения подробной информации о вариантах командной строки в bluealsa-aplay
, обратитесь к странице руководства Bluealsa-Aplay. Есть также некоторые статьи о вики-проекте Bluez-Alsa, приводящих примеры его использования.
Список доступных PCM Bluealsa (предоставленный подключенными устройствами Bluetooth с аудио возможностями) может быть получен непосредственно из API Bluealsa D-BUS или с использованием bluealsa-aplay
в качестве удобной обертки следующим образом:
bluealsa-aplay -L
Этот проект приветствует вклад в код, документацию и тестирование.
Пожалуйста, обратитесь к руководству по внесению подробностей.
Наиболее часто встречающиеся ошибки обсуждаются в руководстве по устранению неполадок. Пожалуйста, проверьте этот файл, чтобы увидеть, есть ли уже решение для вашей проблемы.
Если вы не можете найти решение в этом документе или читая ручные страницы, пожалуйста, найдите предыдущие вопросы (как открытые, так и закрытые) и проконсультируйтесь с вики, прежде чем поднять новую проблему. К сожалению, вики не индексируется веб-поисковыми системами, поэтому поиск в Интернете по вашей проблеме не будет обнаружить там информацию.
Если сообщать о проблеме в качестве нового выпуска, пожалуйста, используйте соответствующий шаблон отчетности Bluez-Alsa Github и заполните каждый раздел шаблона как можно более полно.
Bluealsa лицензирована в соответствии с условиями лицензии MIT. Смотрите файл лицензии для получения подробной информации.