Seleccionar página

Es lo que uso en el trabajo, en casa, en la cama, en la ducha y en todas partes para mantenerme cuerdo y feliz. La música me hace mejor, y dado que la música es una parte tan importante de mi experiencia con Android, ha habido un lento declive del que he sido dolorosamente consciente en los últimos años, y especialmente en los últimos meses.

A veces enciendo mis auriculares Bluetooth, presiono reproducir y no pasa nada. Y nada sucede mucho más de lo que solía.

En mis primeros días con Android, con Soarin en el bolsillo (sí, llamé a mi Samsung Captivate Glide) y mi primer par de auriculares Bluetooth Kinivo (se abre en una pestaña nueva) alrededor del cuello, no necesitaba tener Google Play Music abierto , solo necesitaba presionar reproducir en mis auriculares. De hecho, saqué un Samsung Galaxy SII de un cajón, lo encendí por primera vez en meses, lo emparejé con auriculares Bluetooth y presioné el botón de reproducción. Y la música sonaba.

No tanto en los dispositivos actuales en mi establo.

El HTC 10 simplemente no obedece los controles de Bluetooth a veces, notificación persistente para la aplicación de música o no. Preferiría darle al play en mi Moto 360 o en el propio teléfono. El HTC A9 es igual de quisquilloso. El Nexus 5X a veces no inicia la copia de seguridad de la música con la notificación persistente activa, pero a veces lo hace sin ella. El Samsung S6 edge se reproducirá, pero a veces, en lugar de reproducir la aplicación de música activa más recientemente, volverá de forma predeterminada a la aplicación de música precargada.

Hay una palabra que sigue repitiéndose aquí: a veces. Esto se debe a que este es un problema que tiene muchas variables: qué dispositivo Android está usando, qué dispositivo Bluetooth está usando, qué versión de Android y Bluetooth tienen sus dispositivos, qué aplicación de música está tratando de reproducir, en qué entorno te encuentras, etc. Eso es un montón de cosas para contribuir a un problema aparentemente simple de botones que no funcionan cada vez que los presionas.

Entonces, ¿qué está pasando realmente aquí? Bueno, la respuesta es un poco correcta, muy técnica.

Cuando presiona el botón, Android lo interpreta y lo transmite a través del sistema a través de KeyEvents. El siguiente botón de sus auriculares se interpreta y entrega como KEYCODE_MEDIA_NEXT a través de KeyEvent. Hay una gran variedad de valores que se pueden extraer para diferentes botones, o incluso para el mismo botón. El botón de reproducción en la mayoría de los auriculares también es el botón de pausa, por lo que la tecla podría devolver KEYCODE_MEDIA_PAUSE, KEYCODE_MEDIA_PLAY o mucho más probable KEYCODE_MEDIA_PLAY_PAUSE, según el dispositivo y su estado actual. Por cierto, si alguna vez pulsó pausa y la música comenzó en otro lugar mientras estaba en pausa lo que estaba viendo/escuchando, este es el KeyEvent culpable, porque fue recibido y actuado por dos aplicaciones.

Una vez que se interpretan los KeyEvents, aún deben ser escuchados por una aplicación de música que esté escuchando los botones de medios a través de una intención de BroadcastReceiver. Después de todo, una aplicación no puede actuar sobre un KeyEvent si no puede verlo. Si algo impide que el receptor en una aplicación reciba pulsaciones de botones, puede estropear los controles de reproducción de varias maneras, incluido el problema intermitente que describí anteriormente. Si una aplicación anula el registro de su BroadcastReceiver demasiado rápido cuando pierde Audio Focus (el método a través del cual Android determina qué aplicaciones pueden reproducir audio en un momento dado), entonces cuando pausa su música, puede perder dejar de escuchar y no escuchar el botón que dice. para empezar a jugar de nuevo. Por eso es importante que las aplicaciones de medios manejen tanto Audio Focus como su BroadcastReceiver correctamente para que, incluso cuando un dispositivo haya perdido el primero, no pierda el segundo.

Mucho de esto se reduce a qué tan bien está programada su aplicación de música y qué botones multimedia transmite su dispositivo cuando presiona un botón en sus auriculares. Esto también significa que incluso si los controles de reproducción son consistentes cuando compra un dispositivo, pueden romperse con las actualizaciones de la aplicación o del sistema que cambian la rapidez con la que deja de escuchar.

En el caso de aplicaciones como Google Play Music, las actualizaciones que rompen cosas parecen ser cada vez más frecuentes. Si bien la mayoría de los descansos se solucionan rápidamente, otros pueden tardar meses en solucionarse. Los problemas intermitentes, como que su música no se inicia correctamente en Bluetooth, pueden ser difíciles de registrar e identificar correctamente, lo que ralentiza aún más una posible solución.

Si las aplicaciones de música no tienen enfoque de audio y no se ejecutan como servicios de primer plano (si la notificación persistente para el reproductor multimedia no está allí), existe la posibilidad de que el sistema Android (más específicamente Doze) o el llamado "recurso Las aplicaciones de "ahorro" podrían eliminar la aplicación para liberar memoria para otras actividades. Cuando eso sucede, es posible que presionar reproducir no haga nada porque no hay ningún receptor abierto y escuchando los comandos.

Ahora, así como hay varias cosas que podrían romper los controles de reproducción, también hay opciones para intentar solucionarlo.

La primera solución es un poco extrema, pero es una de las pocas que los usuarios podrían implementar en sus teléfonos actuales sin alteraciones de raíz en el software. Usando aplicaciones como Tasker y AutoInput, podemos detectar la presión del botón, suprimir la acción KeyEvent original y luego ejecutar un comando más especializado (y más consistente) dirigido directamente a una aplicación. Por ejemplo, en lugar de que el botón de reproducción sea un comando de reproducción de medios genérico que podría ser seleccionado o ignorado por docenas de servicios de medios, podríamos reasignarlo como un comando de alternancia de reproducción/pausa específico de Google Play Música para que otras aplicaciones no lo hagan. iniciar en su lugar.

Esto puede ser tedioso de programar, y al suprimir la acción original y reemplazarla, rompemos el botón de pausa nativo que quizás queramos usar en otras aplicaciones como YouTube o Netflix. En resumen, no es una gran solución para usuarios no técnicos o usuarios que usan una variedad de aplicaciones de medios.

Muchos teléfonos incluyen una gran cantidad de acciones de gestos y botones que puede activar o desactivar en Configuración, como tocar dos veces para activar o presionar dos veces Inicio/encendido para la cámara. Si bien agregar controles de Bluetooth a esta lista puede alargarla y complicarla, si el sistema Android reconociera y dirigiera KeyEvent a una aplicación específica en lugar de transmitir una señal genérica a cualquier receptor que esté escuchando (o no), podríamos garantizar la coherencia. Hemos visto esto en dispositivos antes, por ejemplo, abrir Moto Assist y encender una aplicación de música designada cuando se conecta al Bluetooth de su automóvil.

Cambiar la forma en que Android maneja los botones de medios y las entradas de botones en general, ya que los controladores y teclados Bluetooth se encuentran con problemas propios podría crear tantos problemas nuevos como los que resuelve, pero considerando la cantidad de lugares en los que las cosas pueden salir mal en la actualidad. sistema, podría valer la pena romper los huevos para hacer una nueva tortilla.

Al final del día, los usuarios de todos los días no quieren profundizar en los comandos clave, los receptores y qué aplicación tiene enfoque de audio en este momento. Queremos que nuestro enfoque esté en la música misma y hacia dónde nos lleva. Y si no puedo encender la música que me mantiene cuerda en lugares ruidosos y llenos de gente en el primer intento, no soy una chica feliz. Y apuesto a que no soy el único.

Video: