À propos du projet
NeriPlayer est un lecteur audio Android natif, construit avec Jetpack Compose et Media3, prenant en charge Android 9 (API 28) et versions ultérieures. Le projet se positionne comme « exploration multi-sources, lecture en ligne, contrôle local, données autogérées », ne fournissant pas de bibliothèque musicale cloud publique ni de service de distribution de médias ; les capacités en ligne dépendent de l'autorisation du compte de l'utilisateur sur des plateformes tierces.
Les principales fonctionnalités incluent :
- Lecture en ligne multi-sources : Intègre NetEase Cloud Music, Bilibili et YouTube Music, avec prise en charge de la recherche, des playlists, des favoris, des albums, des détails d'artistes, ainsi que l'analyse des sources audio, la gestion de la file d'attente et la récupération après échec. Si NetEase Cloud n'a pas d'autorisation ou ne renvoie que des extraits, une dégradation de la qualité audio est tentée, avec un repli sur Bilibili ou l'audio local selon les paramètres.
- Données locales prioritaires : Le cache de lecture, les fichiers téléchargés, les playlists, l'historique, les statistiques de lecture et les paramètres sont enregistrés par défaut sur l'appareil ; les cookies de plateforme, les jetons GitHub, les mots de passe WebDAV, etc., sont chiffrés avec Android Keystore et EncryptedSharedPreferences.
- Synchronisation auto-hébergée optionnelle : Les métadonnées locales telles que les playlists, les favoris, les lectures récentes et les statistiques peuvent être synchronisées vers le dépôt GitHub ou les fichiers distants WebDAV de l'utilisateur, avec WorkManager pour la synchronisation différée et périodique, et une fusion à trois voies pour gérer les conflits.
- Expérience des paroles : Prend en charge la mise en évidence ligne par ligne, mot par mot/caractère par caractère des paroles LRC, YRC/TTML, la traduction, la translittération, le décalage, le saut par clic, le partage par appui long et la génération de cartes de paroles ; fournit un éditeur de paroles, peut se connecter à des sources externes comme LRCLIB, et prend en charge les paroles flottantes, les paroles dans la barre d'état, SuperLyric, Lyricon et la sortie de paroles Bluetooth.
- Lecture et effets sonores : Basé sur Media3 ExoPlayer, prend en charge la vitesse variable, la tonalité, l'égaliseur, l'amélioration du volume, les fondues d'entrée/sortie, les fondues croisés, la pause en cas de déconnexion Bluetooth, les stratégies de focus audio, et la lecture USB exclusive pour les appareils UAC1.0 et UAC2.0 Type I PCM compatibles.
- Téléchargement et gestion locale : Le téléchargement intégré prend en charge l'audio multi-plateforme, la progression des tâches, l'annulation/la nouvelle tentative, la reprise (HTTP direct, Range par blocs, HLS traités séparément), avec un nombre de téléchargements simultanés par défaut de 6, maximum 8 ; prend en charge les répertoires de téléchargement personnalisés via SAF et les modèles de noms de fichiers ; l'audio local peut être importé via le partage externe, l'analyse de l'appareil ou l'analyse de dossiers autorisés, avec reconnaissance des fichiers de paroles et de pochettes à proximité.
- Écoute partagée : Via Cloudflare Workers et Durable Objects, fournit la synchronisation des salles, des rôles, de la file d'attente, de l'état de lecture et des modes de répétition/aléatoire, avec prise en charge des liens d'invitation, de l'adhésion par liens profonds, des serveurs personnalisés et de la récupération hors ligne du propriétaire de la salle.
- Diagnostic et récupération : Fournit un mode sans échec, des journaux de crash, des enregistrements ANR, des sondes de débogage en mode développeur, ainsi que des statistiques de stockage groupées et le nettoyage des caches régénérables.
Le projet adopte une architecture à activité unique + Compose, avec l'interface principale organisée par NavHost et une barre inférieure dynamique, la page de lecture étant un calque plein écran superposé avec un Mini Player persistant. Le dépôt comprend l'enregistrement automatique des paramètres via KSP, des sous-modules d'analyse des paroles et d'interface utilisateur, et un sous-module de serveur pour l'écoute partagée. Le projet est déclaré à des fins d'apprentissage et de recherche uniquement, ne fournissant pas de contenu médiatique, de clés ou de solutions pour contourner les restrictions de plateforme.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.