Отправка проигрывания паузы/резюме и следующих/предыдущих команд Bluetooth дорожки

Я хотел бы свой ПК Ubuntu, отправляющий команды аудио Bluetooth (игра/пауза, следующая/предыдущая песня, и повернулся бы/вниз) к другой музыке потоковой передачи устройства по Bluetooth к нему. Другими словами, я хотел бы реализовать свой ПК Ubuntu, "симулирующий" быть видом Bluetooth-гарнитуры, которая может изменить дорожки, и музыку резюме и паузу.

Мне проиллюстрировали следующую установку с pavucontrol снимками экрана ниже (pt2 устройство, подключенное через Bluetooth): enter image description here enter image description here

В этой конфигурации, передающей работы потоком как ожидалось (я могу услышать музыку, переданную потоком от pt2), но я не нашел способа смочь отправить ему любой сигнал, такой как проигрывание паузы/резюме или дорожка изменения.

Я уже узнал, что существует много протоколов Bluetooth, позволяющих определенные функции. Если я понял спецификации правильно, чем я интересуюсь, A2DP, который является способом, которым устройства подключены теперь. Но под профилем выпадают, у меня есть также головное устройство гарнитуры опций HSP/HFP, шлюз HSP/HFPheadset и прочь.

Я собираюсь разработать свое собственное приложение в Python, который позволит отправлять такие команды, таким образом, я буду интересоваться отправкой их с помощью Python API или через команды удара.

Я задаю этот вопрос, потому что мне интересно способом, как я могу связаться с bluetooth-устройствами.

10
задан 30 January 2019 в 02:10

1 ответ

Вдохновленный @kenn, я решил пойти глубже в dbus и d-feet инструменты. В конечном счете я достиг своей цели с помощью следующей команды:

dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_44_78_3E_85_9D_6F org.bluez.MediaControl1.Play

который, конечно, инициированная играющая музыка на моем мобильном устройстве, подключенном к моему ПК по Bluetooth.

В общем для bluetooth-устройств эта команда была бы похожа:

dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated> org.bluez.MediaControl1.<command_to_send>

Для проверки выполненного MAC-адреса устройств bt-devices -l. Это перечислит все известные (но не обязательно соединенное или даже обнаруженное) устройства с MAC-адресом в круглых скобках.

Для нахождения позволенного списка команд, установки d-feet с sudo apt install d-feet. После выполнения его примените поиск bluez запрос под System Bus вкладка и находит запись с MAC Ваших устройств:

enter image description here

Существуют методы, подобные для наполнения, который использует Bluetooth-гарнитуру под org.bluez.MediaControl1. Но при просмотре их дерево можно найти ПУТЬ больше, это действительно стоит внимания.

dbus-send команда для отправки использования сигналов dbus. --system переключатель указывает, что мы хотим использовать материал от System Bus вкладка d-ног. Я не имею , пробуют его все же, но я предполагаю --print-reply только для отладки целей и не обязателен. --dest=org.blez относится к Name в заголовке d-ног. /org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated> и org.bluez.MediaControl1.<command> обратитесь к путям дерева объектов.

10
ответ дан 23 November 2019 в 04:33

Другие вопросы по тегам:

Похожие вопросы: