Об этом проекте
NeriPlayer — это нативный Android-аудиоплеер, созданный на Jetpack Compose и Media3, поддерживающий устройства с Android 9 (API 28) и выше. Проект позиционируется как «мультиисточниковое исследование, онлайн-воспроизведение, локальный контроль, владение данными», не предоставляет публичную облачную медиатеку или услуги распространения медиа, онлайн-возможности зависят от авторизации аккаунта пользователя на сторонних платформах.
Основные возможности:
- Мультиисточниковое онлайн-воспроизведение: интеграция NetEase Cloud Music, Bilibili и YouTube Music, поддержка поиска, плейлистов, избранного, альбомов, страниц исполнителей и других точек входа, а также разбор источников аудио, управление очередью и восстановление после сбоев. Когда NetEase не имеет прав или возвращает только пробные фрагменты, предпринимается попытка понижения качества звука, а в соответствии с настройками может выполняться сопоставление с Bilibili или локальным аудио в качестве запасного варианта.
- Локально-приоритетные данные: кэш воспроизведения, загруженные файлы, плейлисты, история, статистика воспроизведения и настройки по умолчанию сохраняются локально на устройстве; Cookie платформ, GitHub Token, пароли WebDAV и т. п. шифруются с помощью Android Keystore и EncryptedSharedPreferences.
- Опциональная собственная синхронизация: метаданные локальных плейлистов, избранного, недавно воспроизведённого, статистики воспроизведения можно синхронизировать с собственным репозиторием GitHub пользователя или удалёнными файлами WebDAV, используя WorkManager для отложенной и периодической синхронизации, с трёхсторонним слиянием для обработки конфликтов.
- Работа с текстами песен: поддержка построчного, пословного/посимвольного выделения текстов LRC, YRC/TTML, переводов, транслитераций, смещения, перехода по клику, долгого нажатия для отправки и создания карточек текста; предоставляется редактор текстов, возможность подключения внешних источников, таких как LRCLIB, а также поддержка плавающих текстов, текстов в строке состояния, SuperLyric, Lyricon и вывода текстов по Bluetooth.
- Воспроизведение и звуковые эффекты: на основе Media3 ExoPlayer, поддержка скорости, тональности, эквалайзера, усиления громкости, плавного появления/затухания, кроссфейда, паузы при отключении Bluetooth, политики аудиофокуса, а также эксклюзивного USB-воспроизведения для устройств UAC1.0 и совместимых UAC2.0 Type I PCM.
- Загрузка и локальное управление: встроенная загрузка поддерживает аудио с нескольких платформ, прогресс задач, отмену/повтор, докачку (прямой HTTP, диапазонные чанки Range, HLS обрабатываются отдельно), по умолчанию 6 одновременных загрузок, максимум 8; поддержка SAF для пользовательского каталога загрузок и шаблонов имён файлов; локальное аудио можно импортировать через внешний обмен, сканирование устройства или сканирование авторизованных папок, с распознаванием расположенных рядом файлов текстов и обложек.
- Совместное прослушивание: через Cloudflare Workers и Durable Objects обеспечивается синхронизация комнат, ролей, очереди, состояния воспроизведения и режимов повтора/случайного порядка, поддержка ссылок-приглашений, присоединения по глубокой ссылке, пользовательского сервера и восстановления после отключения владельца комнаты.
- Диагностика и восстановление: предоставляются безопасный режим, журналы сбоев, записи ANR, отладочные зонды режима разработчика, а также групповая статистика использования хранилища и очистка регенерируемого кэша.
Проект использует архитектуру с одной Activity + Compose, главный интерфейс организован через NavHost и динамическую нижнюю панель, страница воспроизведения представляет собой полноэкранный оверлей с постоянно присутствующим Mini Player. Репозиторий включает автоматическую регистрацию настроек через KSP, подмодули разбора текстов и UI, подмодуль серверной части совместного прослушивания и другие компоненты. Проект заявлен только для обучения и исследований, не предоставляет медиаконтент, ключи или способы обхода ограничений платформ.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.