Свой аудио-плеер на Android. Делаем правильноТехнологии Android
В промышленном программировании с конца прошлого тысячелетия. Начинал как Delphi-разработчик, затем .NET backend и, наконец, нашел себя на поприще Android-разработки. В настоящее время работает в СберТехе в команде разработки Сбербанк Онлайн, основное направление - уведомления и все, что с ними связано. Вы не получили уведомление о транзакции? Тогда Сергей идет к вам!
В рамках доклада мы рассмотрим задачу разработки аудио-плеера для Android. Мы не будем руками разбирать формат mp3, для этого есть отличные готовые библиотеки. Но сделаем акцент на задачах интеграции нашего плеера в Android: разместим кнопки управления на экране блокировки телефона, поддержим Android Auto и часы на Wear OS.
Наше приложение будет построено на основе классов MediaSession и MediaController, предназначенных для унифицированного управления плеерами. Мы разместим MediaSession в Android-сервисе, а MediaController - в Activity; интегрируем наши элементы управления в систему (экран блокировки в pre-Lollipop и уведомления в post-Lollipop); применим MediaButtonReceiver для перехвата событий; а также не забудем про AudioFocus и прочие мелкие, но важные мелочи.
В завершение рассмотрим MediaBrowserService, предназначенный для публикации информации о медиа-ресурсах, и применим его для интеграции с Android Auto.