Sobre o projeto
NeriPlayer é um player de áudio Android nativo, construído com Jetpack Compose e Media3, compatível com Android 9 (API 28) ou superior. O projeto se posiciona como "exploração de múltiplas fontes, reprodução online, controle local e autonomia de dados", não oferecendo biblioteca musical em nuvem pública ou serviços de distribuição de mídia; as capacidades online dependem da autorização da conta do usuário em plataformas de terceiros.
As principais capacidades incluem:
- Reprodução online de múltiplas fontes: integra NetEase Cloud Music, Bilibili e YouTube Music, com suporte a busca, playlists, favoritos, álbuns, detalhes de artistas, além de resolução de fontes de áudio, gerenciamento de fila e recuperação de falhas. Quando o NetEase Cloud não tem permissão ou retorna apenas trechos de prévia, tenta reduzir a qualidade do áudio e pode usar Bilibili ou áudio local como fallback conforme as configurações.
- Dados com prioridade local: cache de reprodução, arquivos baixados, playlists, histórico, estatísticas de reprodução e configurações são salvos por padrão no dispositivo; cookies de plataformas, tokens GitHub e senhas WebDAV são criptografados usando Android Keystore e EncryptedSharedPreferences.
- Sincronização própria opcional: permite sincronizar metadados locais como playlists, favoritos, reproduções recentes e estatísticas de reprodução para repositórios GitHub ou arquivos remotos WebDAV do próprio usuário, usando WorkManager para sincronização atrasada e periódica, com mesclagem de três vias para resolver conflitos.
- Experiência de letras: suporte a destaque, tradução, transliteração, deslocamento, toque para pular, compartilhamento por toque longo e geração de cartões de letras para LRC linha por linha, LRC palavra por palavra/caractere por caractere, YRC/TTML; inclui editor de letras, integração com fontes externas como LRCLIB, e suporte a letras flutuantes, letras na barra de status, SuperLyric, Lyricon e saída de letras via Bluetooth.
- Reprodução e efeitos sonoros: baseado no Media3 ExoPlayer, suporta velocidade variável, tom, equalizador, reforço de volume, fade in/out, crossfade, pausa ao desconectar Bluetooth, políticas de foco de áudio e reprodução USB exclusiva para dispositivos UAC1.0 e UAC2.0 Tipo I PCM compatíveis.
- Download e gerenciamento local: download no aplicativo com suporte a áudio de múltiplas plataformas, progresso de tarefas, cancelar/repetir, retomada de downloads interrompidos (HTTP direto, Range por blocos e HLS tratados separadamente), concorrência padrão de 6 e máxima de 8; suporte a diretório de download personalizado via SAF e modelos de nomes de arquivo; áudio local pode ser importado por compartilhamento externo, varredura de dispositivo ou varredura de pastas autorizadas, com reconhecimento de arquivos de letras e capas próximos.
- Ouvir juntos: através de Cloudflare Workers e Durable Objects, fornece sincronização de salas, papéis, fila, estado de reprodução e modos de repetição/aleatório, com suporte a links de convite, entrada por deep link, servidor personalizado e recuperação quando o anfitrião fica offline.
- Diagnóstico e recuperação: oferece modo de segurança, logs de falhas, registros de ANR, sondas de depuração no modo desenvolvedor, estatísticas de uso de armazenamento por grupo e limpeza de caches regeneráveis.
O projeto adota arquitetura de Activity única + Compose, com a interface principal organizada por NavHost e barra inferior dinâmica; a página de reprodução é uma camada de tela cheia sobreposta com Mini Player persistente. O repositório inclui registro automático de configurações via KSP, submódulos de análise de letras e UI, e submódulo de servidor para ouvir juntos. O projeto declara que é apenas para fins de estudo e pesquisa, não fornecendo conteúdo de mídia, chaves ou soluções para contornar restrições de plataformas.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.