Я хотел бы, чтобы мой ПК с Ubuntu отправлял аудио-команды bluetooth (воспроизведение / пауза, следующая / предыдущая песня и включение / выключение) на другое устройство, передавая на него музыку через Bluetooth. Другими словами, я бы хотел, чтобы мой компьютер с Ubuntu «притворялся» как своего рода наушники Bluetooth, которые способны менять дорожки, а также приостанавливать и возобновлять музыку.
У меня есть следующая настройка, показанная на снимках экрана pavucontrol ниже ( pt2
устройство подключено через Bluetooth):
В этой конфигурации потоковая передача работает, как и ожидалось (я слышу потоковую музыку pt2
), но я не нашел способа отправить ему какой-либо сигнал, такой как пауза / возобновление воспроизведения или изменение трека.
Я уже выяснил, что существует множество протоколов Bluetooth, позволяющих выполнять определенные функции. Если я правильно понял спецификации, меня интересует A2DP, то есть способ подключения устройств. Но при выпадающем профиле у меня также есть варианты гарнитуры HSP / HFP, шлюза HSP / HFP и выключения.
Я собираюсь разработать свое собственное приложение на Python, которое позволит отправлять такие команды, поэтому я заинтересован в отправке их через Python API или через команды bash.
Я задаю этот вопрос, потому что мне интересно, как я могу общаться с устройствами Bluetooth.
источник
Ответы:
Вдохновленный @kenn, я решил пойти глубже
dbus
иd-feet
инструменты. В конце концов я достиг своей цели с помощью следующей команды:что, конечно, вызывало воспроизведение музыки на моем мобильном устройстве, подключенном к ПК через Bluetooth.
Обычно для устройств Bluetooth эта команда будет выглядеть так:
Чтобы проверить 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-foot. Я еще не пробовал, но я полагаю, что--print-reply
это только для целей отладки и не является обязательным.--dest=org.blez
относится кName
заголовку d-футов./org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated>
иorg.bluez.MediaControl1.<command>
обратитесь к путям дерева объектов.источник
dbus-send
команды на мультимедийные кнопки вашего ПК или как вы собираетесь их использовать?