Sobre el proyecto
NeriPlayer es un reproductor de audio nativo para Android, construido con Jetpack Compose y Media3, compatible con dispositivos Android 9 (API 28) y superiores. El proyecto se posiciona como "exploración de múltiples fuentes, reproducción en línea, control local y datos en propiedad del usuario"; no ofrece una biblioteca musical en la nube pública ni servicios de distribución de medios, y las capacidades en línea dependen de la autorización de la cuenta del usuario en plataformas de terceros.
Las principales capacidades incluyen:
- Reproducción en línea de múltiples fuentes: integra NetEase Cloud Music, Bilibili y YouTube Music, con accesos a búsqueda, listas de reproducción, favoritos, álbumes, detalles de artistas, etc., y ofrece resolución de fuentes de audio, gestión de colas y recuperación ante fallos. Cuando NetEase Cloud Music no tiene permisos o solo devuelve fragmentos de prueba, intenta degradar la calidad de audio y, según la configuración, puede recurrir a Bilibili o audio local como respaldo.
- Datos locales prioritarios: la caché de reproducción, los archivos descargados, las listas de reproducción, el historial, las estadísticas de reproducción y la configuración se guardan por defecto en el dispositivo local; las cookies de plataformas, los tokens de GitHub, las contraseñas de WebDAV, etc., se almacenan cifrados mediante Android Keystore y EncryptedSharedPreferences.
- Sincronización autohospedada opcional: los metadatos como listas de reproducción locales, favoritos, reproducciones recientes y estadísticas de reproducción pueden sincronizarse con el repositorio de GitHub del propio usuario o con archivos remotos WebDAV, utilizando WorkManager para sincronización diferida y periódica, y aplicando una fusión de tres vías para resolver conflictos.
- Experiencia de letras: soporta resaltado, traducción, transliteración, desplazamiento, salto al hacer clic, compartir con pulsación larga y generación de tarjetas de letras para letras LRC, YRC/TTML línea por línea, palabra por palabra o carácter por carácter; proporciona un editor de letras que puede conectarse a fuentes externas como LRCLIB, y admite letras flotantes, letras en la barra de estado, SuperLyric, Lyricon y salida de letras por Bluetooth.
- Reproducción y efectos de sonido: basado en Media3 ExoPlayer, admite velocidad de reproducción, tono, ecualizador, refuerzo de sonoridad, fundido de entrada/salida, fundido cruzado, pausa al desconectar Bluetooth, políticas de enfoque de audio y reproducción exclusiva USB para dispositivos UAC1.0 y PCM Tipo I compatibles con UAC2.0.
- Descarga y gestión local: la descarga dentro de la aplicación admite audio de múltiples plataformas, progreso de tareas, cancelación/reintento y reanudación de descargas interrumpidas (HTTP directo, fragmentos con Range y HLS se manejan por separado), con 6 descargas simultáneas por defecto y un máximo de 8; admite directorios de descarga personalizados mediante SAF y plantillas de nombres de archivo; el audio local puede importarse mediante compartición externa, escaneo del dispositivo o escaneo de carpetas autorizadas, y reconoce archivos de letras y portadas cercanos.
- Escucha en grupo: mediante Cloudflare Workers y Durable Objects, ofrece sincronización de salas, roles, colas, estado de reproducción y modos de repetición/aleatorio, con enlaces de invitación, unión mediante enlaces profundos, servidor personalizado y recuperación cuando el anfitrión se desconecta.
- Diagnóstico y recuperación: proporciona modo seguro, registros de fallos, registros de ANR, sondas de depuración en modo desarrollador, así como estadísticas agrupadas de uso de almacenamiento y limpieza de cachés regenerables.
El proyecto adopta una arquitectura de una sola Activity + Compose; la interfaz principal está organizada por NavHost y una barra inferior dinámica, y la página de reproducción es una capa superpuesta a pantalla completa con un Mini Player siempre presente. El repositorio incluye registro automático de opciones de configuración mediante KSP, submódulos de análisis de letras y UI, y un submódulo de servidor para la escucha en grupo. El proyecto declara que es solo para fines de aprendizaje e investigación, y no proporciona contenido multimedia, claves ni soluciones para eludir las restricciones de las plataformas.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.