À propos du projet

react-native-vlc-media-player fournit des composants de lecture multimédia basés sur VLC pour les applications React Native. Le paquet exporte `VLCPlayer` pour un contrôle direct du lecteur et `VlCPlayerView`, une vue de plus haut niveau avec titre, retour, lecture automatique et autres options d'interface. Les sources réseau prises en charge incluent RTSP, RTP, RTMP, HLS, MMS, HTTP, FTP, UDP et d'autres protocoles exposés via VLC. Le README liste une large couverture de formats, notamment MKV, MP4, AVI, FLV, Ogg, flux de transport MPEG, H.264, H.265, AV1, VP8/VP9, AAC, MP3, FLAC, Opus, AC3 et DTS. Il prend également en charge plusieurs pistes audio, y compris le 5.1, et des formats de sous-titres tels que SRT, WebVTT, TTML, SSA/ASS, VobSub et Télétexte. Les propriétés du lecteur couvrent l'URI source, l'URI de sous-titres local, l'état de pause, la répétition, la vitesse de lecture, la position de recherche, le volume, le muet, les pistes audio et texte sélectionnées, la lecture en arrière-plan, le rapport hauteur/largeur, le rapport automatique, le mode de redimensionnement et la lecture automatique. Les rappels d'événements incluent onPlaying, onProgress, onPaused, onStopped, onBuffering, onEnded, onError, onLoad, onRecordingCreated et onSnapshot. Les méthodes de référence peuvent enregistrer le flux actuel dans un répertoire, arrêter l'enregistrement et sauvegarder une capture d'image. L'installation est disponible via npm ou Yarn, avec liaison React Native pour les projets non-Expo. Android ne nécessite généralement aucun réglage spécial, mais le README inclut une solution Gradle pour les bibliothèques natives `libc++_shared.so` en double et note que les versions plus récentes de LibVLC résolvent les problèmes de sous-titres sur Android 12 et 13. La configuration iOS utilise CocoaPods ; les applications ciblant iOS 14 et ultérieur peuvent nécessiter `NSLocalNetworkUsageDescription` car MobileVLCKit peut accéder au réseau local pour des sources telles que les flux de caméras RTSP. Expo n'est pris en charge que via une build de développement personnalisée, pas Expo Go, car le module contient du code natif personnalisé. Un plugin de configuration Expo est fourni avec des paramètres facultatifs iOS VLCKit et Android legacy Jetifier. Le README documente un crash connu du simulateur iOS 17 sur certaines versions et recommande un simulateur iOS 18+ dans ce cas. Il liste également un TODO en suspens indiquant que certains aspects du rapport hauteur/largeur et de la gestion des paramètres vidéo Android ne sont pas entièrement implémentés côté JavaScript.