Я хотел бы свой ПК Ubuntu, отправляющий команды аудио Bluetooth (игра/пауза, следующая/предыдущая песня, и повернулся бы/вниз) к другой музыке потоковой передачи устройства по Bluetooth к нему. Другими словами, я хотел бы реализовать свой ПК Ubuntu, "симулирующий" быть видом Bluetooth-гарнитуры, которая может изменить дорожки, и музыку резюме и паузу.
Мне проиллюстрировали следующую установку с pavucontrol снимками экрана ниже (pt2
устройство, подключенное через Bluetooth):
В этой конфигурации, передающей работы потоком как ожидалось (я могу услышать музыку, переданную потоком от pt2
), но я не нашел способа смочь отправить ему любой сигнал, такой как проигрывание паузы/резюме или дорожка изменения.
Я уже узнал, что существует много протоколов Bluetooth, позволяющих определенные функции. Если я понял спецификации правильно, чем я интересуюсь, A2DP, который является способом, которым устройства подключены теперь. Но под профилем выпадают, у меня есть также головное устройство гарнитуры опций HSP/HFP, шлюз HSP/HFPheadset и прочь.
Я собираюсь разработать свое собственное приложение в Python, который позволит отправлять такие команды, таким образом, я буду интересоваться отправкой их с помощью Python API или через команды удара.
Я задаю этот вопрос, потому что мне интересно способом, как я могу связаться с bluetooth-устройствами.
Вдохновленный @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 Ваших устройств:
Существуют методы, подобные для наполнения, который использует 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>
обратитесь к путям дерева объектов.