21 votos

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

Antecedentes: Tengo un auricular bluetooth A2DP/AVRCP ( Nokia BH-505 ) que uso activamente para escuchar tanto podcasts como 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 "reproducir/pausar"

Actualmente cada vez que pulso alguno de los comandos, uno de los reproductores de música que tengo instalados ( Meridian ) siempre recibe el comando - incluso cuando no está activo. Así, cuando hago clic en "reproducir/pausar" con la intención de pausar un podcast ( DoggCatcher ), en su lugar se activa Meridian y comienza a reproducir música junto con el podcast.

Ambos jugadores están preparados para utilizar el auricular: DoggCatcher tiene activado "Bind to headset" y Meridian tiene activado "Headset Buttons". Actualmente estoy usando Android 2.2.1 de stock sin root en GT-S5570, pero puede ser el rooting y la actualización 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 debe reaccionar a estos comandos? Me interesa incluso una respuesta muy técnica.

En el aspecto práctico me interesa:

  • ¿Tengo que tocar 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 manera de configurar esto para que la aplicación que realmente activo ¿obtendría siempre automáticamente la prioridad? (como se preguntó en parte en otra pregunta )

En qué se diferencia esta pregunta de otras similares:

1 votos

Me las arreglé para encontrar algo de buena información relacionada con esto desde un blog de desarrolladores de Android - discutiendo la forma correcta en que este debe ser implementado por las aplicaciones en 2.2: "Permitir que las aplicaciones jueguen bien(r) entre sí: El manejo de los botones del mando a distancia"

0 votos

En 2016 esto sigue siendo un problema -.- Al pasar de iOS esta podría ser la parte más irritante de Android para mí hasta ahora :/

0 votos

11voto

Silas Puntos 176

media-button-router Ya se ha mencionado en una de sus preguntas enlazadas, intenta para averiguar qué aplicación está reproduciendo música en ese momento y enviarle los eventos AVRCP. Además, enumera todas las aplicaciones instaladas, que declarar para escuchar los eventos AVRCP.

Lo que complica el AVRCP: Algunas aplicaciones, como Sony's Music Unlimited parece que no declaran android.intent.action.MEDIA_BUTTON en su manifiesto. Por esta (o quizás otra) razón no pueden ser controlados vía media-button-router. Sé que, por ejemplo, Music Unlimited se puede controlar a través de AVRCP ya que lo leí en un comentario de un usuario y también pude hacerlo funcionar una vez pero desgraciadamente no es reproducible. Así que en esos casos parece que tenemos que esperar a una actualización de la aplicación con una implementación limpia del manejo de eventos AVRCP.

Según wiki de media-button-router "El manejo de la intención de los botones multimedia se hace a través de transmisiones ordenadas, y cada app establece su propia prioridad de recepción". Así que tal vez podría ser posible escribir una aplicación que muestre estas prioridades y, en efecto, le permitiría determinar qué aplicación se iniciará. Sin embargo, no conozco una aplicación de este tipo.

1voto

Por fin han añadido una sección para responder exactamente a esta pregunta: https://developer.Android.com/guide/topics/media-apps/mediabuttons.html

0voto

Sniper Puntos 1480

Quizás esto ayude un poco:

Samsung S5 --> receptor Bluetooth + tapones para el teléfono en el oído

Estoy usando el Samsung S5, primero con la aplicación 7digital para descargar y reproducir música. Luego cambié y usé Cloudplayer. Pero cada vez que se reproduce Clouplayer y pulso el botón de pausa/reproducción en mi receptor Bluetooth, mi aplicación 7digital comienza a reproducir música. No pude cambiar ninguna configuración para cambiar la reproducción/pausa del bluetooth hacia Cloudplayer. Entonces borré toda mi música descargada de 7digital y lo intenté de nuevo. Problema resuelto. La reproducción/pausa está de alguna manera vinculada a Cloudplayer ahora.

0voto

Rizwan Ul Haq Puntos 1

No es un problema de tu dispositivo BT. Cuando se empareja con su teléfono, el auricular Bluetooth reproduce el flujo A2DP activo iniciado 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, etc. Ahora bien, cuando se reproduce algo en la web o algún otro reproductor que no implementa todos estos controles sobre AVRCP, para el auricular BT sigue siendo un flujo A2DP activo. Enviará mensajes de control AVRCP a su teléfono. Ahora es su teléfono el que se supone que debe dirigir estos comandos a la aplicación respectiva en la mayoría de los casos a la fuente de streaming A2DP activa o en su caso su teléfono sigue reenviando los comandos AVRCP al reproductor de música por defecto.

Tu mejor opción sería intentar configurar tu móvil siempre que la fuente que estés reproduciendo soporte el control AVRCP. Si no es así, no podrás hacer nada. Si lo hace, entonces definitivamente el móvil debería permitir que estos comandos AVRCP sean manejados por tu fuente de streaming A2DP activa.

-2voto

Benjamin Puntos 1

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X