ely-video-player
v1.0.12
Published
Un lecteur vidéo React Native personnalisable avec contrôles avancés
Maintainers
Readme
Ely Video Player
Un lecteur vidéo React Native personnalisable avec contrôles avancés.
Installation
npm install ely-video-player
# ou
yarn add ely-video-playerUtilisation
import { ElyVideoPlayer } from "ely-video-player";
const App = () => {
return (
<ElyVideoPlayer
source={{ uri: "https://example.com/video.mp4" }}
poster="https://example.com/poster.jpg"
onProgress={(progress) => console.log("Progress:", progress)}
onEnd={() => console.log("Video ended")}
controlsConfig={{
showPlayPause: true,
showFullscreen: true,
showQuality: true,
showCast: true,
showBackButton: true,
showTime: true,
showSlider: true,
showFastForward: true,
showRewind: true,
}}
theme={{
primaryColor: "#f0738a",
backgroundColor: "rgba(0, 0, 0, 0.5)",
controlsBackground: "rgba(255, 255, 255, 0.3)",
textColor: "#ffffff",
}}
gestureConfig={{
enableDoubleTap: true,
enableSwipe: true,
doubleTapInterval: 800,
swipeThreshold: 50,
}}
progressConfig={{
saveProgress: true,
saveInterval: 5000,
onProgressSave: (progress) => {
console.log("Progress saved:", progress);
},
}}
chapterConfig={{
showChapterMarkers: true,
chapterStyle: {
markerColor: "#f0738a",
markerWidth: 2,
},
}}
appStateConfig={{
pauseOnBackground: true,
resumeOnForeground: false,
}}
qualities={[
{ label: "Auto", value: "auto" },
{ label: "1080p", value: "1080p" },
{ label: "720p", value: "720p" },
{ label: "480p", value: "480p" },
{ label: "360p", value: "360p" },
]}
chapters={[
{ time_start: "00:00", title: "Introduction" },
{ time_start: "02:30", title: "Premier chapitre" },
// ...
]}
/>
);
};Props
Props de base
source: Source de la vidéo (objet avec uri)poster: URL de l'image de couverturestyle: Styles personnalisés pour le conteneuronProgress: Callback appelé lors de la progression de la vidéoonEnd: Callback appelé à la fin de la vidéoonLoad: Callback appelé au chargement de la vidéoonPlay: Callback appelé au démarrage de la lectureonPause: Callback appelé à la mise en pauseonSeek: Callback appelé lors du déplacement dans la vidéoonFullScreenChange: Callback appelé lors du changement de mode plein écran
Props de personnalisation (controlsConfig)
showPlayPause: Afficher le bouton lecture/pauseshowFullscreen: Afficher le bouton plein écranshowQuality: Afficher le menu de qualitéshowCast: Afficher le bouton de castshowBackButton: Afficher le bouton retourshowTime: Afficher le temps de lectureshowSlider: Afficher la barre de progressionshowFastForward: Afficher le bouton avance rapideshowRewind: Afficher le bouton retour rapide
Props de style (theme)
primaryColor: Couleur principale des contrôlesbackgroundColor: Couleur de fond des contrôlescontrolsBackground: Couleur de fond des boutons de contrôletextColor: Couleur du texte
Props de configuration
bufferConfig: Configuration du buffer vidéomaxBitRate: Débit maximum de la vidéoprogressUpdateInterval: Intervalle de mise à jour de la progressionresizeMode: Mode de redimensionnement de la vidéorepeat: Répéter la vidéoautoPlay: Démarrer automatiquement
Props de fonctionnalités
chapters: Liste des chapitres de la vidéoqualities: Liste des qualités disponiblesinitialPosition: Position initiale de la vidéo
Props de callback
onChapterChange: Callback appelé lors du changement de chapitreonQualityChange: Callback appelé lors du changement de qualitéonControlsVisibilityChange: Callback appelé lors du changement de visibilité des contrôles
Props de gestes (gestureConfig)
enableDoubleTap: Activer les doubles-taps pour l'avance/retour rapideenableSwipe: Activer les gestes de swipedoubleTapInterval: Intervalle maximum entre deux taps (en ms)swipeThreshold: Seuil de détection des swipes (en pixels)
Props de progression (progressConfig)
saveProgress: Activer la sauvegarde automatique de la progressionsaveInterval: Intervalle de sauvegarde (en ms)onProgressSave: Callback appelé lors de la sauvegarde de la progression
Props de chapitres (chapterConfig)
showChapterMarkers: Afficher les marqueurs de chapitreschapterStyle: Style des marqueurs de chapitresmarkerColor: Couleur des marqueursmarkerWidth: Largeur des marqueurs
Props d'état de l'application (appStateConfig)
pauseOnBackground: Mettre en pause la vidéo en arrière-planresumeOnForeground: Reprendre la lecture au retour au premier plan
Fonctionnalités
- Lecture/pause
- Contrôle du volume
- Mode plein écran
- Sélection de la qualité
- Navigation par chapitres
- Avance/retour rapide
- Barre de progression personnalisable
- Support du casting
- Thème personnalisable
- Contrôles masquables
- Support des posters
- Gestion de la mémoire tampon optimisée
- Gestes tactiles (doubles-taps, swipes)
- Sauvegarde automatique de la progression
- Gestion intelligente de l'état de l'application
- Marqueurs de chapitres personnalisables
Contribution
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request.
Licence
MIT
