Це те, що я використовую на роботі, вдома, в ліжку, під душем і скрізь між ними, щоб залишати мене здоровим і щасливим. Музика робить мене кращим, і оскільки музика є такою значною частиною мого досвіду Android, відбувся повільний спад, про який я болісно усвідомлюю останні кілька років, і особливо останні кілька місяців.
Іноді я включаю навушники Bluetooth, натискаю програвання, і нічого не відбувається. І нічого не відбувається набагато більше, ніж раніше.
У перші мої дні з Android, із Soarin в кишені (так, я назвав свій Samsung Captivate Glide) та моєю першою парою навушників Kinivo Bluetooth на шиї, мені не потрібно було відкривати Google Play Music, мені просто потрібно було натиснути грати в моїх навушниках. Насправді я дістав Samsung Galaxy SII з шухляди, завантажив його вперше за кілька місяців, з’єднав з ним навушники Bluetooth і натиснув кнопку відтворення. І грала музика.
Не так багато на поточних пристроях у моїй стайні.
HTC 10 просто не підкоряється контролю Bluetooth іноді, постійне повідомлення музичного додатка чи ні. Я вважаю за краще грати на моїй Moto 360 або на самому телефоні. HTC A9 так само вибагливий. Іноді Nexus 5X не запускатиме резервну копію музики при постійному сповіщенні, але іноді обходиться без неї. Samsung S6 edge буде грати, але іноді замість того, щоб відтворювати музичну програму, яка була останнім часом найактивнішою, вона повернеться до попередньо завантаженого додатка Music.
Тут є слово, яке постійно повторюється: інколи. Це тому, що це проблема, яка має безліч змінних: який Android-пристрій ви використовуєте, який пристрій Bluetooth ви використовуєте, яку версію Android та Bluetooth мають ваші пристрої, який музичний додаток ви намагаєтесь відтворити, в якому середовищі ви знаходитесь і т. д. Це багато чого сприяє, здавалося б, простой кнопці, яка не працює при кожному натисканні на них.
То що насправді відбувається тут? Ну, відповідь отримує трохи - добре, багато - технічна.
Коли ви натискаєте кнопку, вона інтерпретується Android і транслюється по всій системі через KeyEvents. Наступна кнопка вашої гарнітури інтерпретується та передається як KEYCODE_MEDIA_NEXT через KeyEvent. Існує велика різноманітність значень, які можна підтягувати для різних кнопок або навіть для однієї і тієї ж кнопки. Кнопка відтворення на більшості гарнітур - це також кнопка паузи, тому ключ може повернути KEYCODE_MEDIA_PAUSE, KEYCODE_MEDIA_PLAY або набагато більш імовірний KEYCODE_MEDIA_PLAY_PAUSE залежно від пристрою та його поточного стану. До речі, якщо ви коли-небудь натискали паузу, і музика починалася десь в іншому місці, а те, що ви дивилися / слухали, призупинялося, це винен KeyEvent, оскільки його отримали і діяли два додатки.
Після того, як KeyEvents інтерпретуються, вони все ще повинні бути почуті музичним додатком, який прослуховує медіа-кнопки за допомогою програми BroadcastReceiver. Зрештою, додаток не може діяти на KeyEvent, якщо він не бачить його. Якщо щось не заважає приймачу в додатку отримувати натискання кнопок, він може зіпсувати елементи управління відтворення кількома способами, включаючи переривчасту проблему, яку я описав вище. Якщо додаток занадто швидко скасовує програму BroadcastReceiver, коли він втрачає Audio Focus (метод, за допомогою якого Android визначає, які програми можуть відтворювати аудіо в даний момент часу), тоді, коли ви призупиняєте свою музику, вона може втратити перестати слухати і не почути натискання кнопки, що говорить це знову почати грати. Ось чому для медіа-додатків важливо правильно обробляти як Audio Focus, так і їх BroadcastReceiver, щоб навіть коли пристрій втратив перший, він не втрачав останній.
Багато цього зводиться до того, наскільки добре програмується ваш музичний додаток та які медіа-кнопки транслюються вашим пристроєм, коли ви натискаєте кнопку на гарнітурі. Це також означає, що навіть якщо елементи керування відтворенням послідовні, коли ви купуєте пристрій, вони можуть бути порушені оновленнями програм або оновленнями системи, які змінюють, наскільки швидко він перестає слухати.
Що стосується таких додатків, як Google Play Музика, оновлення, що порушують речі, здаються все частішими. Хоча більшість перерв фіксуються швидко, інші можуть зайняти кілька місяців. Переривчасті проблеми, такі як музика не запускається належним чином через Bluetooth, можуть бути важкими для реєстрації та належної ідентифікації, що ще більше сповільнить можливе виправлення.
Якщо музичні програми не мають аудіофокусу і не працюють як сервіси переднього плану (якщо постійного повідомлення для медіаплеєра немає), існує ймовірність, що система Android (точніше Doze) або так званий "ресурс" додатки можуть "врятувати" програму, щоб звільнити пам'ять для інших дій. Коли це станеться, натискання на гру може нічого не робити, тому що немає відкритих приймачів і не слухають команди.
Тепер, як і кілька речей, які можуть порушити ваш контроль відтворення, є також варіанти спроб виправити це.
Перше рішення трохи екстремальне, але одне з небагатьох, яке користувачі могли сьогодні впровадити на своїх поточних телефонах без будь-яких кореневих змін програмного забезпечення. Використовуючи такі програми, як Tasker та AutoInput, ми можемо виявити натискання кнопки, придушити оригінальну дію KeyEvent, а потім виконати більш спеціалізовану (і більш послідовну) команду, спрямовану безпосередньо на один додаток. Наприклад, замість того, щоб кнопка відтворення була загальною командою відтворення медіа-файлів, яку можна було підібрати або проігнорувати десятками медіа-служб, ми можемо перезаписати її як команду перемикання / паузи перемикання, характерну для Google Play Music, щоб інші додатки не запустити замість цього.
Це може бути нудно програмувати, пригнічуючи оригінальну дію та замінюючи її, ми порушуємо натиснуту кнопку паузи, яку ми, можливо, захочемо використовувати в інших додатках, таких як YouTube або Netflix. Коротше кажучи, це не так багато рішення для нетехнічних користувачів або користувачів, які використовують різноманітні медіа-програми.
Багато телефонів містять безліч жестів і кнопок, які можна ввімкнути або вимкнути в налаштуваннях, наприклад, двічі торкніться, щоб прокинутись або двічі натиснути Home / power для камери. Додавання елементів керування Bluetooth до цього списку може подовжувати та ускладнювати його, якби система Android повинна була визнати та направити KeyEvent на певну програму, а не транслювати загальний сигнал на те, що приймачі (або не є) слухають, ми могли б забезпечити послідовність. Ми це бачили на пристроях раніше, наприклад, відкриваючи Moto Assist, включаючи призначений музичний додаток, коли він підключався до Bluetooth вашого автомобіля.
Зміна способу обробки Android на мультимедійних кнопках - і в цілому займається введенням кнопок, оскільки Bluetooth-контролери та клавіатури стикаються з власними проблемами - можуть створити стільки нових проблем, скільки вони вирішуються, але враховуючи кількість місць, у яких може бути - і робити. неправильно в нинішній системі, можливо, варто розбити яйця, щоб зробити новий омлет.
Зрештою, щоденні користувачі не хочуть копатися у ключових командах, приймачах та програмі, яка зараз має аудіофокус. Ми хочемо, щоб наша увага була зосереджена на самій музиці та на тому, де вона нас веде. І якщо я не можу ввімкнути музику, яка з першої спроби мене розквітає у гучних, людних місцях, я не щаслива дівчина. І я б'юся об заклад, що я не єдиний.
Ми можемо заробляти комісію за покупки, використовуючи наші посилання. Вчи більше.