Ich möchte, dass mein Ubuntu-PC Bluetooth-Audiobefehle (Wiedergabe / Pause, nächster / vorheriger Titel und Auf / Ab) an ein anderes Gerät sendet, das Musik über Bluetooth an dieses Gerät überträgt. Mit anderen Worten, ich möchte meinen Ubuntu-PC so implementieren, als wäre er eine Art Bluetooth-Kopfhörer, der in der Lage ist, Titel zu wechseln und Musik anzuhalten und fortzusetzen.
Ich habe das folgende Setup mit den folgenden Pavucontrol-Screenshots dargestellt ( pt2
ist das Gerät über Bluetooth verbunden):
In dieser Konfiguration funktioniert das Streaming wie erwartet (ich kann Musik hören, von der gestreamt wird pt2
), aber ich habe keine Möglichkeit gefunden, ein Signal wie Pause / Wiedergabe oder Titelwechsel zu senden.
Ich habe bereits herausgefunden, dass es viele Bluetooth-Protokolle gibt, die bestimmte Funktionen ermöglichen. Wenn ich die Spezifikationen richtig verstanden habe, interessiert mich A2DP, wie Geräte jetzt verbunden sind. Aber unter Profil-Dropdown habe ich auch Optionen HSP / HFP-Headset-Head-Unit, HSP / HFP-Headset-Gateway und Aus.
Ich werde meine eigene Anwendung in Python entwickeln, die das Senden solcher Befehle ermöglicht. Daher bin ich daran interessiert, sie über die Python-API oder über Bash-Befehle zu senden.
Ich stelle diese Frage, weil ich daran interessiert bin, wie ich mit Bluetooth-Geräten kommunizieren kann.
quelle
Antworten:
Inspiriert von @kenn, entschied ich mich tiefer in zu gehen
dbus
undd-feet
Werkzeugen. Schließlich erreichte ich mein Ziel mit dem folgenden Befehl:was natürlich das Abspielen von Musik auf meinem mobilen Gerät auslöste, das über Bluetooth mit meinem PC verbunden war.
Generell würde dieser Befehl für Bluetooth-Geräte folgendermaßen aussehen:
Um die MAC-Adresse Ihrer Geräte zu überprüfen, führen Sie sie aus
bt-devices -l
. Es werden alle bekannten (aber nicht unbedingt verbundenen oder sogar entdeckten) Geräte mit der MAC-Adresse in Klammern aufgelistet.Installieren Sie
d-feet
mit , um die Liste der zulässigen Befehle zu findensudo apt install d-feet
. Wenden Sie nach dem Ausführen die Suche nachbluez
Abfragen unter derSystem Bus
Registerkarte an und suchen Sie den Eintrag mit dem MAC Ihres Geräts:Es gibt ähnliche Methoden wie bei Bluetooth-Kopfhörern
org.bluez.MediaControl1
. Aber wenn Sie diesen Baum durchsuchen, können Sie einen Weg mehr finden, das ist wirklich Ihre Aufmerksamkeit wert.dbus-send
ist ein Befehl zum Senden von Signalen mitdbus
.--system
Der Schalter zeigt an, dass wir Dinge vonSystem Bus
der Registerkarte d-feet verwenden möchten . Ich habe es noch nicht ausprobiert, aber ich nehme an, es--print-reply
dient nur zu Debugging-Zwecken und ist nicht obligatorisch.--dest=org.blez
bezieht sich aufName
in d-Fuß-Header./org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated>
undorg.bluez.MediaControl1.<command>
beziehen sich auf Objektbaumpfade.quelle
dbus-send
Befehle den Medientasten Ihres PCs zugeordnet oder wie möchten Sie sie verwenden?