Cosa determina quale applicazione agisce su un comando AVRCP bluetooth?


18

Sfondo: ho un auricolare bluetooth A2DP / AVRCP ( Nokia BH-505 ) che utilizzo attivamente per ascoltare sia podcast che musica. Certo, li ascolto con diverse app. L'auricolare bluetooth ha alcuni pulsanti "comando" (AVRCP), specifici per l'audio - in particolare: "traccia successiva", "traccia precedente" e "riproduzione / pausa"

Attualmente ogni volta che premo uno qualsiasi dei comandi, uno dei lettori musicali che ho installato ( Meridian ) riceve sempre il comando, anche quando non è attivo. Quindi quando faccio clic su "Riproduci / Pausa" con l'intenzione di mettere in pausa un podcast ( DoggCatcher ), invece Meridian viene attivato e inizia a riprodurre musica insieme al podcast.

Entrambi i giocatori utilizzano l'auricolare: DoggCatcher ha "Associa auricolare" attivato e Meridian ha "Pulsanti auricolare" attivati. Attualmente sto utilizzando Android 2.2.1 non root su GT-S5570, ma in futuro potrò effettuare il rooting e l'aggiornamento a 2.3 CyanogenMod (o simili).

Ignorando i dettagli, la mia domanda al riguardo è più generale:

  • In che modo Android determina quale app può reagire a questi comandi? Sono interessato anche a una risposta molto tecnica.

Sul lato pratico sono interessato a:

  • Devo giocherellare con le impostazioni di ciascuna applicazione per determinare quale applicazione accetta i comandi o esiste un modo generale per determinarlo?
  • C'è un modo per configurarlo in modo che l'applicazione effettivamente attiva ottenga sempre automaticamente la priorità? (come è stato chiesto in parte in un'altra domanda )

In che modo questa domanda differisce da domande simili:


1
Sono riuscito a trovare alcune buone informazioni relative a questo da un blog per sviluppatori Android - discutendo sul modo corretto che questo dovrebbe essere implementato dalle applicazioni in 2.2: "Permettere alle applicazioni di giocare bene (r) tra loro: Gestire i pulsanti del telecomando"
Ilari Kajaste il

Nel 2016 questo è ancora un problema. - Passando da iOS questa potrebbe essere la parte più irritante di Android per me finora: /
Squazz

Risposte:


11

media-button-router , già menzionato in una delle tue domande collegate, cerca di capire quale app sta attualmente riproducendo musica e di inviare ad essa gli eventi AVRCP. Inoltre, elenca tutte le app installate che dichiarano di ascoltare gli eventi AVRCP.

Ciò che rende complicato AVRCP: alcune app, come Sony Music Unlimited , sembrano non dichiararsi android.intent.action.MEDIA_BUTTONnel loro manifest. Per questo (o forse per qualche altro motivo) non possono essere controllati tramite media-button-router. So che ad esempio Music Unlimited può essere controllato tramite AVRCP poiché l'ho letto in un commento dell'utente e sono stato anche in grado di farlo funzionare una volta, ma sfortunatamente non è riproducibile. Quindi in quei casi sembra che dobbiamo aspettare l'aggiornamento di un'app con un'implementazione pulita della gestione degli eventi AVRCP.

Secondo il wiki di media-button-router "La gestione delle intenzioni dei pulsanti multimediali avviene tramite trasmissioni ordinate e ogni app imposta la propria priorità per la ricezione". Quindi forse potrebbe essere possibile scrivere un'app che mostri queste priorità e, in effetti, ti consenta di determinare quale applicazione verrà avviata. Tuttavia, non conosco tale app.



0

Forse questo aiuterà un po ':

Samsung S5 -> Ricevitore Bluetooth + prese auricolari In Ear

Sto usando Samsung S5, prima con l'app 7digital per scaricare e riprodurre musica. Poi ho cambiato e usato Cloudplayer. Ma ogni volta che Clouplayer sta giocando e premo il pulsante Pausa / Riproduci sul mio ricevitore Bluetooth, la mia app 7digital inizierà a riprodurre musica. Non ho potuto modificare alcuna impostazione per cambiare la riproduzione / pausa del bluetooth verso Cloudplayer. Ho quindi eliminato tutta la mia musica scaricata su 7digital e ho riprovato. Problema risolto! La riproduzione / pausa è in qualche modo collegata a Cloudplayer ora.


0

Non è un problema con il tuo dispositivo BT. Se associato al telefono, l'auricolare Bluetooth riproduce il flusso A2DP attivo avviato dal telefono cellulare. Se si tratta di un lettore multimediale standard sul telefono, può reagire a tutti i comandi di controllo AVRCP come play pause skip, fw ecc. Ora, quando si riproduce qualcosa sul Web o qualche altro lettore che non implementa tutti questi controlli su AVRCP, per BT Headset è ancora in arrivo un flusso A2DP attivo. Spedirà i messaggi di controllo AVRCP sul telefono. Ora è il tuo telefono che dovrebbe indirizzare questi comandi alla rispettiva app nella maggior parte dei casi alla sorgente di streaming A2DP attiva o nel tuo caso il tuo telefono sta ancora inoltrando i comandi AVRCP al lettore musicale predefinito.

La soluzione migliore sarebbe provare a configurare il tuo cellulare a condizione che la fonte che stai riproducendo supporti il ​​controllo AVRCP. In caso contrario, comunque non puoi fare nulla. In tal caso, definitivamente Mobile dovrebbe consentire a questi comandi AVRCP di essere gestiti dalla sorgente di streaming A2DP attiva.


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.