Logo sk.androidermagazine.com
Logo sk.androidermagazine.com

Replay: rastúci zápas ovládacích prvkov prehrávania cez Bluetooth

Anonim

To je to, čo používam v práci, doma, v posteli, v sprche a všade medzi tým, aby ma udržiaval zdravý a šťastný. Hudba ma vylepšuje a keďže hudba je takou veľkou časťou môjho pôsobenia v systéme Android, došlo k pomalému poklesu, o ktorom som bolesťou v posledných rokoch, a najmä v posledných mesiacoch.

Niekedy zapnem slúchadlá Bluetooth, spustím hru a nič sa nestane. A nič sa nedeje oveľa viac, ako to bývalo.

V mojich prvých dňoch Androidu, so Soarinom vo vrecku (áno, pomenoval som si Samsung Captivate Glide) a mojím prvým párom Bluetooth slúchadiel Kinivo okolo krku, nemusel som mať otvorenú hudbu Google Play, len som musel zasiahnuť hrať na mojich slúchadlách. V skutočnosti som vytiahol Samsung Galaxy SII zo šuplíka, prvýkrát som ho zaviedol v mesiacoch, spároval s ním slúchadlá Bluetooth a stlačil tlačidlo prehrávania. A hudba sa prehrala.

Ani nie na súčasných zariadeniach v mojej stajni.

HTC 10 jednoducho nedodržiava niekedy ovládacie prvky Bluetooth, trvalé upozornenie na hudobnú aplikáciu alebo nie. Radšej by som hral hru na mojom Moto 360 alebo na telefóne samotnom. HTC A9 je rovnako rafinovaný. Nexus 5X niekedy nespustí zálohovanie hudby s upozornením, ale niekedy to urobí aj bez tohto upozornenia. Hrana Samsung S6 sa bude prehrávať, ale niekedy namiesto prehrávania naposledy aktívnej hudobnej aplikácie sa predvolene vráti na predinštalovanú hudobnú aplikáciu.

Existuje slovo, ktoré sa tu opakuje: niekedy. Je to preto, že ide o problém, ktorý má veľa premenných: aké zariadenie Android používate, aké zariadenie Bluetooth používate, akú verziu systému Android a Bluetooth majú vaše zariadenia, akú hudobnú aplikáciu sa snažíte prehrať, v akom prostredí sa nachádzate atď. To je veľa vecí, ktoré prispievajú k zdanlivo jednoduchému problému tlačidiel, ktoré nefungujú pri každom stlačení.

Čo sa tu vlastne deje? Odpoveď je trochu - v poriadku, veľa - technická.

Keď stlačíte tlačidlo, systém ho interpretuje a vysiela cez systém prostredníctvom KeyEvents. Ďalšie tlačidlo na vašej náhlavnej súprave je interpretované a dodávané ako KEYCODE_MEDIA_NEXT prostredníctvom KeyEvent. Existuje veľké množstvo hodnôt, ktoré je možné získať pre rôzne tlačidlá alebo dokonca pre rovnaké tlačidlo. Tlačidlo prehrávania na väčšine náhlavných súprav je tiež tlačidlom pozastavenia, takže kláves môže vrátiť KEYCODE_MEDIA_PAUSE, KEYCODE_MEDIA_PLAY alebo omnoho pravdepodobnejšie KEYCODE_MEDIA_PLAY_PAUSE v závislosti od zariadenia a jeho aktuálneho stavu. Mimochodom, ak ste niekedy zasiahli pauzu a hudba sa začala niekde inde, zatiaľ čo sledované / počúvané pauzy boli na vine, je to na vine KeyEvent, pretože ju prijali a konali dve aplikácie.

Po interpretácii KeyEvents ich stále musí počuť hudobná aplikácia, ktorá počúva mediálne tlačidlá prostredníctvom zámeru BroadcastReceiver. Koniec koncov, aplikácia nemôže konať na KeyEvent, ak ju nevidí. Ak prijímaču v aplikácii bráni niečo stlačiť, môže to ovládať prehrávanie niekoľkými spôsobmi, vrátane prerušovaného problému, ktorý som opísal vyššie. Ak aplikácia zruší registráciu svojho vysielania BroadcastReceiver príliš rýchlo, keď stratí zvukové zameranie (metóda, pomocou ktorej Android určuje, ktoré aplikácie môžu prehrávať zvuk v danom čase), potom keď pozastavíte hudbu, môže stratiť zastavenie počúvania a nepočuť stlačenie tlačidla začať znova hrať. Preto je dôležité, aby mediálne aplikácie správne zaobchádzali s funkciou Audio Focus aj s ich vysielačom BroadcastReceiver, aby aj keď zariadenie stratilo prvú, nestratí druhé.

Veľa z toho súvisí s tým, ako dobre je naprogramovaná vaša hudobná aplikácia a ktoré tlačidlá médií vysiela zariadenie, keď stlačíte tlačidlo na náhlavnej súprave. To tiež znamená, že aj keď sú ovládacie prvky prehrávania konzistentné pri zakúpení zariadenia, môžu byť prerušené aktualizáciami aplikácií alebo systémovými aktualizáciami, ktoré menia, ako rýchlo prestane počúvať.

Zdá sa, že v prípade aplikácií, ako je napríklad Hudba Google Play, sa stále častejšie vyskytujú aktualizácie. Zatiaľ čo väčšina prestávok sa opraví rýchlo, iné sa môžu opraviť až po niekoľkých mesiacoch. Občasné problémy, ako napríklad hudba, ktorá sa nespúšťa správne na rozhraní Bluetooth, sa môžu ťažko prihlásiť a správne identifikovať, čo ďalej spomaľuje možnú opravu.

Ak hudobné aplikácie nemajú zvukové zameranie a nefungujú ako služby v popredí (ak tam nie je trvalé upozornenie pre prehrávač médií), existuje šanca, že systém Android (presnejšie Doze) alebo tzv. - ukladanie aplikácií by mohlo zabiť aplikáciu a uvoľniť tak pamäť pre ďalšie aktivity. Keď k tomu dôjde, hra nemusí brať nič, pretože nie sú otvorené žiadne prijímače a nepočúvajú príkazy.

Teraz, rovnako ako existuje niekoľko vecí, ktoré by mohli narušiť vaše ovládacie prvky prehrávania, existujú aj možnosti, ako sa to pokúsiť opraviť.

Prvé riešenie je trochu extrémne, ale jedno z mála, ktoré by používatelia mohli dnes implementovať do svojich súčasných telefónov bez akýchkoľvek základných zmien softvéru. Pomocou aplikácií, ako sú Tasker a AutoInput, môžeme zistiť stlačenie tlačidla, potlačiť pôvodnú akciu KeyEvent a potom vykonať špecializovanejší (a konzistentnejší) príkaz zameraný priamo na jednu aplikáciu. Napríklad, namiesto tlačidla prehrávania, ktoré je všeobecným príkazom na prehrávanie médií, ktorý by mohol vyzdvihnúť alebo ignorovať desiatky mediálnych služieb, by sme ho mohli preformulovať ako príkaz na prepínanie medzi prehrávaním a pozastavením špecifický pre službu Hudba Google Play, aby ostatné aplikácie neboli namiesto toho začnite.

Programovanie môže byť zdĺhavé a potlačením pôvodnej akcie a jej nahradením prerušíme natívne tlačidlo pozastavenia, ktoré by sme mohli chcieť použiť v iných aplikáciách, ako sú YouTube alebo Netflix. Stručne povedané, nejde o riešenie pre netechnických používateľov alebo používateľov, ktorí používajú rôzne mediálne aplikácie.

Mnoho telefónov obsahuje množstvo gest a tlačidiel, ktoré môžete v Nastaveniach zapnúť alebo vypnúť, napríklad dvojitým klepnutím sa prebudíte alebo dvojitým stlačením tlačidla Domov / napájanie fotoaparátu. Zatiaľ čo pridanie ovládacích prvkov Bluetooth do tohto zoznamu ho môže predĺžiť a skomplikovať, ak by systém Android mal uznať a nasmerovať KeyEvent na konkrétnu aplikáciu, a nie vysielať všeobecný signál na čokoľvek prijímače (alebo nie) počúvajú, mohli by sme zaistiť konzistentnosť. Už sme to videli na zariadeniach predtým, napríklad pri otvorení programu Moto Assist zapnutím určenej hudobnej aplikácie, keď je pripojená k rozhraniu Bluetooth vášho vozidla.

Zmena spôsobu, akým Android spracováva tlačidlá médií - a zaoberá sa celkovo vstupmi tlačidiel, keďže radiče a klávesnice Bluetooth sa stretávajú s vlastnými problémami - by mohli vytvoriť toľko nových problémov, koľko ich vyrieši, ale s ohľadom na počet miest, ktoré môžu a môžu robiť - V súčasnom systéme je zlé, že by stálo za to rozbiť vajíčka a vytvoriť novú omeletu.

Nakoniec, každodenní používatelia nechcú kopať do kľúčových príkazov, prijímačov a na ktorú aplikáciu má práve audio zameranie. Chceme, aby sme sa zamerali na samotnú hudbu a kam nás zavedie. A ak nemôžem zapnúť hudbu, ktorá ma udržiava zdravý v hlasných, preplnených miestach pri prvom pokuse, nie som šťastná dievčina. A stavím sa, že nie som jediný.

Môžeme získať províziu za nákupy pomocou našich odkazov. Uč sa viac.