¿Qué determina qué aplicación actúa ante un comando AVRCP de bluetooth?

Antecedentes: tengo un auricular bluetooth A2DP / AVRCP ( Nokia BH -505 ) que utilizo activamente para escuchar podcasts y música. Por supuesto, los escucho con diferentes aplicaciones. El auricular bluetooth tiene algunos botones de «comando» (AVRCP), relevantes para el audio, en concreto: «pista siguiente», «pista anterior» y «reproducción / pausa»

Actualmente, cada vez que presiono cualquiera de los comandos , uno de los reproductores de música que he instalado ( Meridian ) siempre recibe el comando, incluso cuando no está activo. Entonces, cuando hago clic en «reproducir / pausar» con la intención de pausar un podcast ( DoggCatcher ), en su lugar, Meridian se activa y comienza a reproducir música junto con el podcast.

Ambos reproductores están configurados para estar usando los auriculares: DoggCatcher tiene activada la opción «Vincular a los auriculares» y Meridian tiene activados los «Botones de los auriculares». Actualmente estoy usando Android 2.2.1 sin rootear en GT-S5570, pero es posible que esté rooteando y actualizando a 2.3 CyanogenMod ( o tal), en el futuro.

Ignorando los detalles, mi pregunta sobre esto es más general:

  • ¿Cómo determina Android qué aplicación obtiene reaccionar a estos comandos? Estoy interesado incluso en una respuesta muy técnica.

En el aspecto práctico, estoy interesado en:

  • ¿Tengo que jugar con la configuración de cada aplicación para determinar qué aplicación toma los comandos, o hay alguna forma general de determinar esto?
  • ¿Hay alguna forma de configurar esto para que la aplicación «s realmente activa automáticamente siempre tenga la prioridad? (como se preguntó en parte en otra pregunta )

En qué se diferencia esta pregunta de otras similares:

Comentarios

Respuesta

media-button-router , ya mencionado en una de sus preguntas vinculadas, intenta averiguar qué aplicación está reproduciendo música actualmente y enviarle los eventos AVRCP. Además, enumera todas las aplicaciones instaladas que declaran escuchar eventos AVRCP.

Qué hace que AVRCP sea complicado: algunas aplicaciones, como Sony «Music Unlimited , parece no declarar android.intent.action.MEDIA_BUTTON en su manifiesto. Por esta (o tal vez alguna otra) razón, no se pueden controlar a través de los medios: botón-enrutador. Lo sé, por ejemplo Music Unlimited se puede controlar a través de AVRCP ya que lo leí en un comentario de usuario y también pude ejecutarlo una vez , pero desafortunadamente no es reproducible. Así que en esos casos parece que tenemos que espere la actualización de una aplicación con una implementación limpia del manejo de eventos AVRCP.

De acuerdo con la wiki de media-button-router «El manejo de la intención del botón de medios se realiza a través de transmisiones ordenadas, y cada aplicación establece su propia prioridad de recepción». Así que tal vez sea posible escribir una aplicación que muestre estas prioridades y, en efecto, le permite determinar qué aplicación se iniciará. Sin embargo, no conozco tal aplicación.

Respuesta

Finalmente agregaron una sección para responder esta pregunta exacta: https://developer.android.com/guide/topics/media-apps/mediabuttons.html

Respuesta

Quizás esto ayude un poco:

Samsung S5 -> Receptor Bluetooth + Enchufes para teléfono en la oreja

Estoy usando Samsung S5, primero con la aplicación 7digital para descargar y reproducir música. Luego cambié y usé Cloudplayer. Pero cada vez que Clouplayer está reproduciendo y presiono el botón de pausa / reproducción en mi receptor Bluetooth, mi aplicación 7digital comenzará a reproducir música. No pude cambiar ninguna configuración para cambiar la reproducción / pausa de bluetooth hacia Cloudplayer. Luego borré toda la música descargada de 7digital y lo intenté de nuevo. ¡Problema resuelto! Reproducir / pausar está vinculado de alguna manera a Cloudplayer ahora.

Responder

No es un problema con su dispositivo BT. Cuando se empareja con su teléfono, el auricular Bluetooth reproduce la transmisión A2DP activa iniciada desde el teléfono móvil. Si se trata de un reproductor multimedia estándar en su teléfono, puede reaccionar a todos los comandos de control AVRCP como reproducir, pausar, saltar, fw, etc. Ahora, cuando reproduce algo en la web o algún otro reproductor que no implementa todos estos controles sobre AVRCP, por BT Headset sigue siendo un flujo activo de A2DP en camino. Enviará mensajes de control AVRCP a su teléfono. Ahora es su teléfono el que se supone que debe enrutar estos comandos a la aplicación respectiva en la mayoría de los casos a la fuente de transmisión A2DP activa o, en su caso, su teléfono todavía está reenviando comandos AVRCP al reproductor de música predeterminado.

Su Lo mejor sería intentar configurar su móvil siempre que la fuente que está reproduciendo sea compatible con el control AVRCP. Si no es así, de todos modos no puede hacer nada. Si lo hace, definitivamente Mobile debería permitir que estos comandos AVRCP sean manejados por su fuente de transmisión A2DP activa.

Respuesta

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *