Logo ca.androidermagazine.com
Logo ca.androidermagazine.com

Replay: la lluita creixent dels controls de reproducció mitjançant bluetooth

Anonim

És el que faig servir a la feina, a casa, al llit, a la dutxa i a tot arreu per mantenir-me sa i feliç. La música em millora i, com que la música és una part tan gran de la meva experiència en Android, hi ha hagut un lent descens del que he tingut coneixement dolorós durant els últims anys, i especialment els darrers mesos.

De vegades encenc els auriculars Bluetooth, faig petar la reproducció i no passa res. I no passa res més del que abans.

En els primers dies d'Android, amb Soarin a la butxaca (sí, vaig anomenar el meu Samsung Captivate Glide) i la meva primera parella d'auriculars Bluetooth Kinivo al coll, no devia tenir Google Play Music obert, només necessitava tocar toca als meus auriculars. De fet, vaig treure un Samsung Galaxy SII d’un calaix, l’he arrencat per primera vegada en mesos, vaig combinar auriculars Bluetooth amb ell i vaig prémer el botó de reproducció. I la música tocava.

No tant en els dispositius actuals del meu estable.

El HTC 10 simplement no obeeix els controls Bluetooth, de vegades, una notificació persistent per a l'aplicació musical o no. Preferiria jugar al meu Moto 360 o al telèfon mateix. El HTC A9 és igual de elegant. El Nexus 5X de vegades no iniciarà una còpia de seguretat de la música amb la notificació persistent, però de vegades ho farà sense una. El Samsung S6 edge reproduirà, però de vegades, en lloc de reproduir l'aplicació de música més recentment activa, es tornarà de manera predeterminada a l'aplicació de música carregada prèviament.

Hi ha una paraula que segueix repetint aquí: de vegades. Això és perquè aquest és un problema amb moltes variables: quin dispositiu Android utilitzeu, quin dispositiu Bluetooth utilitzeu, quina versió d'Android i Bluetooth teniu els vostres dispositius, quina aplicació de música intenteu reproduir, en quin entorn estàs, etc. És un munt de coses que poden contribuir a un problema aparentment senzill dels botons que no funcionen cada cop que els prem.

Què passa aquí? Bé, la resposta és poc tècnica.

Quan premeu el botó, Android l’interpreta i es transmet al sistema mitjançant KeyEvents. El següent botó dels auriculars s’interpreta i es lliura com a KEYCODE_MEDIA_NEXT mitjançant un KeyEvent. Hi ha una gran varietat de valors que es poden obtenir per a diferents botons, o fins i tot per al mateix botó. El botó de reproducció de la majoria dels auriculars també és el botó de pausa, de manera que la clau podria retornar KEYCODE_MEDIA_PAUSE, KEYCODE_MEDIA_PLAY o el molt més probable KEYCODE_MEDIA_PLAY_PAUSE en funció del dispositiu i del seu estat actual. Per cert, si alguna vegada has tocat en pausa i la música començava en un altre lloc mentre que el que miraves o escoltaves s’aturava en pausa, aquest és el KeyEvent a culpa, perquè dues aplicacions han rebut i actuat.

Un cop interpretats els KeyEvents, una aplicació de música que escolta els botons de suports mitjançant un propòsit de BroadcastReceiver els ha de sentir. Al cap i a la fi, una aplicació no pot actuar en un KeyEvent si no la pot veure. Si alguna cosa impedeix que el receptor d'una aplicació rep pressions de botons, pot desordenar els controls de reproducció de diverses maneres, inclòs el problema intermitent que he descrit anteriorment. Si una aplicació registra el seu BroadcastReceiver amb massa rapidesa quan perd l’enfocament d’àudio (el mètode mitjançant el qual Android determina quines aplicacions poden reproduir àudio en un moment determinat), aleshores, quan feu una pausa de la vostra música, pot perdre deixar d’escoltar i no sentir el botó premeu indicant. per començar a jugar de nou. És per això que és important que les aplicacions multimèdia gestionin adequadament tant l’enfocament d’àudio com el seu BroadcastReceiver de manera que fins i tot quan un dispositiu ha perdut el primer, no el perdi.

Molt d’això es tradueix en el grau de programació de l’aplicació musical i quins botons multimèdia emeten el vostre dispositiu quan premeu un botó de l’auricular. Això també vol dir que, fins i tot si els controls de reproducció són consistents quan es compra un dispositiu, es poden trencar mitjançant les actualitzacions d'aplicacions o les actualitzacions del sistema que canvien la rapidesa que deixa d'escoltar.

En el cas d'aplicacions com Google Play Music, sembla que cada cop són més freqüents les actualitzacions actualitzades. Mentre que la majoria de pauses es solucionen ràpidament, altres poden trigar mesos a solucionar-se. Problemes intermitents, com ara que la vostra música no s’iniciï correctament en Bluetooth, poden ser difícils de registrar i identificar correctament, alentint una possible correcció.

Si les aplicacions de música no tenen focus d’àudio i no funcionen com a serveis de primer pla (si la notificació persistent del reproductor multimèdia no hi és), hi ha la possibilitat que el sistema Android (més concretament Doze) o l’anomenat "recurs" Les aplicacions que "estalvien" podrien matar l'aplicació per alliberar memòria per a altres activitats. Quan això succeeix, tocar la reproducció pot no fer res perquè no hi ha cap receptor obert i escoltar ordres.

Ara, de la mateixa manera que hi ha diverses coses que podrien interrompre els controls de reproducció, també hi ha opcions per intentar solucionar-ho.

La primera solució és una mica extrema, però una de les poques que els usuaris podrien implementar als seus telèfons actuals actualment sense cap alteració del programari. Utilitzant aplicacions com Tasker i AutoInput, podem detectar el botó, suprimir l’acció KeyEvent original i, a continuació, dur a terme una ordre més especialitzada (i més coherent) dirigida directament a una aplicació. Per exemple, en lloc que el botó de reproducció és un comandament genèric de suports de reproducció que podrien ser recollits o ignorats per desenes de serveis multimèdia, podríem tornar-lo a posar en contacte com a ordre de reproducció / pausa per canviar específicament de Google Play Music perquè altres aplicacions no arrenca al seu lloc.

Això pot ser tediós de programar i, suprimint l’acció original i reemplaçant-la, trenquem el botó de pausa autòctona que potser vulguem utilitzar en altres aplicacions com YouTube o Netflix. En definitiva, no és gaire bona solució per a usuaris no tècnics o usuaris que utilitzin diverses aplicacions multimèdia.

Molts telèfons inclouen un gran nombre de gestions i accions de botons que podeu activar o desactivar a Configuració, com ara toca dos cops per despertar o premeu dos cops Home / power per a la càmera. Si bé afegir controls Bluetooth a aquesta llista pot allargar-la i complicar-la, si el sistema Android reconegués i dirigiria el KeyEvent a una aplicació específica en lloc de transmetre un senyal genèric a qualsevol dels receptors que escoltin (o no) escoltem, podríem assegurar la coherència. Ja ho hem vist en dispositius abans, com per exemple obrir Moto Assist activant una aplicació de música designada quan es connectava al Bluetooth del cotxe.

El canvi de la manera com Android gestiona els botons de suports i tracta de les entrades de botons en general, ja que els controladors i teclats Bluetooth tenen problemes propis - podrien crear tants nous problemes com resoldre, però tenint en compte la quantitat de llocs que poden fer i fer-ho. equivocada en el sistema actual, potser val la pena trencar els ous per fer una nova truita.

Al final del dia, els usuaris quotidians no volen endinsar-se en les ordres clau, els receptors i quina aplicació té ara mateix el focus d’àudio. Volem que el nostre enfocament estigui en la música mateixa i cap a on ens porta. I si no puc encendre la música que em manté sana en llocs forts i concorreguts al primer intent, no sóc una noia feliç. I aposto que no sóc l’únic.

És possible que guanyem una comissió per les compres mitjançant els nostres enllaços. Aprèn més.