Chciałbym, aby mój komputer Ubuntu wysyłał polecenia audio Bluetooth (odtwarzanie / pauza, następny / poprzedni utwór i przewijanie w górę / w dół) do innego urządzenia przesyłającego strumieniowo muzykę przez bluetooth do niego. Innymi słowy, chciałbym wdrożyć mój komputer Ubuntu „udając”, że są rodzajem słuchawek bluetooth, które potrafią zmieniać ścieżki, wstrzymywać i wznawiać muzykę.
Mam poniższą konfigurację zilustrowaną poniższymi zrzutami ekranu pavucontrol ( pt2
czy urządzenie jest połączone przez bluetooth):
W tej konfiguracji przesyłanie strumieniowe działa zgodnie z oczekiwaniami (słyszę przesyłaną strumieniowo muzykę pt2
), ale nie znalazłem żadnego sposobu, aby móc wysłać mu dowolny sygnał, taki jak pauza / wznowienie odtwarzania lub zmiana ścieżki.
Już się dowiedziałem, że istnieje wiele protokołów Bluetooth umożliwiających określone funkcje. Jeśli dobrze zrozumiałem specyfikację, interesuje mnie A2DP, czyli sposób, w jaki teraz podłączane są urządzenia. Ale pod rozwijanym profilem mam również opcje zestawu słuchawkowego HSP / HFP, bramki HSP / HFP i wyłączonego.
Mam zamiar opracować własną aplikację w języku Python, która pozwoli na wysyłanie takich poleceń, dlatego jestem zainteresowany wysyłaniem ich za pośrednictwem interfejsu API języka Python lub poleceń bash.
Zadaję to pytanie, ponieważ jestem zainteresowany sposobem komunikowania się z urządzeniami Bluetooth.
źródło
Odpowiedzi:
Zainspirowany przez @kenn, zdecydowałem się zagłębić w narzędzia
dbus
id-feet
narzędzia. W końcu osiągnąłem swój cel, używając następującego polecenia:co oczywiście uruchomiło odtwarzanie muzyki na moim urządzeniu mobilnym podłączonym do mojego komputera przez bluetooth.
Zasadniczo dla urządzeń Bluetooth to polecenie wyglądałoby następująco:
Aby sprawdzić adres MAC urządzenia, uruchom
bt-devices -l
. W nawiasach pojawi się lista wszystkich znanych (ale niekoniecznie podłączonych lub nawet odkrytych) urządzeń z adresem MAC.Aby znaleźć listę dozwolonych poleceń, zainstaluj za
d-feet
pomocąsudo apt install d-feet
. Po uruchomieniu, wyszukajbluez
zapytanie wSystem Bus
zakładce i znajdź wpis na MAC urządzenia:Istnieją metody podobne do rzeczy, które wykorzystują słuchawki bluetooth
org.bluez.MediaControl1
. Ale kiedy przeglądasz te drzewa, możesz znaleźć O WIELE więcej, to naprawdę jest warte Twojej uwagi.dbus-send
to polecenie wysyłania sygnałów za pomocądbus
.--system
przełącznik wskazuje, że chcemy używać rzeczy zSystem Bus
zakładki d-stóp. Jeszcze tego nie próbowałem, ale przypuszczam, że--print-reply
jest to wyłącznie do celów debugowania i nie jest obowiązkowe.--dest=org.blez
odnosi się doName
nagłówka d-stóp./org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated>
iorg.bluez.MediaControl1.<command>
odnoszą się do ścieżek drzewa obiektów.źródło
dbus-send
polecenia na przyciskach multimedialnych komputera lub jak zamierzasz ich używać?