Invio pausa / ripresa della riproduzione e comandi bluetooth traccia successiva / precedente


10

Vorrei che il mio PC Ubuntu inviasse comandi audio bluetooth (riproduzione / pausa, brano successivo / precedente e su / giù) ad altri dispositivi che trasmettono musica tramite bluetooth ad esso. In altre parole, vorrei implementare il mio PC Ubuntu "fingendo" di essere una specie di cuffia bluetooth, in grado di cambiare traccia, mettere in pausa e riprendere la musica.

Ho la seguente configurazione illustrata con le schermate di pavucontrol di seguito (il pt2dispositivo è collegato tramite bluetooth): inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

In questa configurazione lo streaming funziona come previsto (riesco a sentire la musica in streaming da pt2), ma non ho trovato alcun modo per essere in grado di inviargli alcun segnale come pausa / ripresa della riproduzione o cambio traccia.

Ho già scoperto che ci sono molti protocolli bluetooth che consentono funzioni specifiche. Se ho capito correttamente le specifiche, quello che mi interessa è A2DP, che è il modo in cui i dispositivi sono ora connessi. Ma sotto il menu a discesa del profilo, ho anche le opzioni Head Headset HSP / HFP, Gateway Headset HSP / HF e off.

Svilupperò la mia applicazione in Python che consentirà l'invio di tali comandi, quindi sono interessato a inviarli tramite API Python o comandi bash.

Sto ponendo questa domanda perché mi interessa un modo per comunicare con i dispositivi Bluetooth.


Non ho occasione di provare, ma sono anche interessato alla soluzione perché ottengo lo stesso problema, in una discussione qui: ubuntuforums.org/… sembra che sia sufficiente aggiungere un modulo di input da caricare, ma le informazioni non sono un molto nel post.
AtomiX84,

@ AtomiX84 Ho l'impressione di avere un problema piuttosto opposto. Voglio che il mio PC faccia finta di essere cuffie, non cuffie collegate al mio PC che suona la musica dello sterzo.
pt12lol


@kenn Mi piacerebbe vedere una cosa abbastanza specifica, mentre la risposta a cui stai collegando sembra piuttosto generica. Potresti fornire un esempio più dettagliato specifico per il mio caso d'uso?
pt12lol,

Non sono un esperto in quella zona, puoi cercare Github. Anche dare un'occhiata a questo link stackoverflow.com/questions/48932249/...
Kenn

Risposte:


10

Ispirato da @kenn, ho deciso di approfondire dbuse d-feetstrumenti. Alla fine ho raggiunto il mio obiettivo usando il seguente comando:

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

che ovviamente ha innescato la riproduzione di musica sul mio dispositivo mobile collegato al mio PC tramite bluetooth.

Generalmente per i dispositivi bluetooth questo comando sarebbe simile a:

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>

Per controllare l'esecuzione dell'indirizzo MAC dei tuoi dispositivi bt-devices -l. Elencherà tutti i dispositivi noti (ma non necessariamente connessi o addirittura scoperti) con l'indirizzo MAC tra parentesi.

Per trovare l'elenco dei comandi consentiti, installare d-feetcon sudo apt install d-feet. Dopo averlo eseguito, applica la ricerca per bluezquery nella System Busscheda e trova la voce con il MAC dei tuoi dispositivi:

inserisci qui la descrizione dell'immagine

Ci sono metodi simili a quelli che usano le cuffie bluetooth sotto org.bluez.MediaControl1. Ma quando sfogli quell'albero, puoi trovare A WAY di più, questo vale davvero la tua attenzione.

dbus-sendè un comando per inviare segnali usando dbus. --systemswitch indica che vogliamo usare cose dalla System Busscheda di d-feet. Non l'ho ancora provato, ma suppongo --print-replysia solo a scopo di debug e non sia obbligatorio. --dest=org.blezsi riferisce Nameall'intestazione d-feet. /org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated>e org.bluez.MediaControl1.<command>fare riferimento ai percorsi dell'albero degli oggetti.


Questo è fantastico! Hai mappato quei dbus-sendcomandi sui pulsanti multimediali del tuo PC o come intendi utilizzarli?
Robert Riedl,

1
@Robert Riedl Volevo catturare gli eventi del mio gamepad e mapparli con comandi specifici inviati al dispositivo mobile che trasmettono musica al mio computer. La motivazione di questo progetto era mio figlio che ama fare il music manager, ma non volevo che passasse troppo tempo sullo schermo. Così ho deciso di fornirgli un altro tipo di UX;)
pt12lol,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.