NexaWebStudio
ENОбсудить проект

radiOLA — онлайн-радио с распознаванием треков

Android-приложение, опубликовано в RuStore: сотни радиостанций и бэкенд, который знает, что сейчас играет в эфире

Категория
Android · опубликовано в RuStore
Платформы
Android · бэкенд
Основной стек
Kotlin · Jetpack Compose · Media3 / ExoPlayer
Посмотреть вживую (откроется в новой вкладке)
СЕЙЧАС В ЭФИРЕ10+ источников · ICY-метаданные

Задача

Слушателю радио нужно видеть, какой трек играет, в одно касание найти его в своём музыкальном сервисе и вернуться к истории эфира.

Что сделали

  1. Каталог станций с фильтрами по тегам, поиском и избранным
  2. Текущий трек в реальном времени по WebSocket и история эфира
  3. Обложки и данные о треках из музыкальных баз, чарты
  4. Поиск текущего трека в восьми музыкальных сервисах одним нажатием
  5. Фоновое воспроизведение с управлением с экрана блокировки и гарнитуры, таймер сна, эквалайзер, виджет
  6. Вход по magic-link и синхронизация настроек

Инженерные решения

«Сейчас в эфире» из 10+ источников

  • «Что играет» собирается из более чем десяти источников: отдельные парсеры для радиосетей и чтение ICY-метаданных прямо из аудиопотока
  • Распознавание трека по фрагменту эфира, когда станция не отдаёт метаданные
  • Kotlin
  • Jetpack Compose
  • Media3 / ExoPlayer
  • Room
  • Hilt
  • NestJS 11
  • Prisma
  • PostgreSQL
  • Redis / BullMQ
  • Socket.IO
Следующий кейс VoteXt — голосовой ввод текста в любое приложение