Commencer
Installation
Section titled “Installation”npm install @capgo/capacitor-jw-playernpx cap syncyarn add @capgo/capacitor-jw-playernpx cap syncpnpm add @capgo/capacitor-jw-playernpx cap syncbun add @capgo/capacitor-jw-playernpx cap syncPrérequis
Section titled “Prérequis”Vous aurez besoin d’un compte JW Player et d’une clé de licence pour utiliser ce plugin. Inscrivez-vous sur JW Player si vous n’en avez pas.
Configuration de la plateforme
Section titled “Configuration de la plateforme”Ajoutez votre clé de licence JW Player à votre Info.plist :
<key>JWPlayerLicenseKey</key><string>VOTRE_CLE_DE_LICENCE</string>Android
Section titled “Android”Ajoutez votre clé de licence JW Player à android/app/src/main/res/values/strings.xml :
<resources> <string name="jw_player_license_key">VOTRE_CLE_DE_LICENCE</string></resources>Exemple d’utilisation
Section titled “Exemple d’utilisation”import { JWPlayer } from '@capgo/capacitor-jw-player';
// Lire une seule vidéoawait JWPlayer.playVideo({ mediaUrl: 'https://example.com/video.mp4', title: 'Ma vidéo', description: 'Description de la vidéo', poster: 'https://example.com/poster.jpg'});
// Lire une playlistawait JWPlayer.playPlaylist({ playlistUrl: 'https://example.com/playlist.json'});
// Écouter les événements du lecteurJWPlayer.addListener('playerReady', () => { console.log('Le lecteur est prêt');});
JWPlayer.addListener('play', (data) => { console.log('La vidéo a commencé à jouer');});
JWPlayer.addListener('pause', (data) => { console.log('Vidéo mise en pause');});
JWPlayer.addListener('complete', (data) => { console.log('Lecture de la vidéo terminée');});
JWPlayer.addListener('error', (error) => { console.error('Erreur du lecteur:', error);});Référence API
Section titled “Référence API”playVideo(options)
Section titled “playVideo(options)”playVideo(options: VideoOptions) => Promise<void>Lire une seule vidéo en mode plein écran.
| Param | Type |
|---|---|
options | VideoOptions |
playPlaylist(options)
Section titled “playPlaylist(options)”playPlaylist(options: PlaylistOptions) => Promise<void>Lire une playlist en mode plein écran.
| Param | Type |
|---|---|
options | PlaylistOptions |
pause()
Section titled “pause()”pause() => Promise<void>Mettre en pause la vidéo actuelle.
play()
Section titled “play()”play() => Promise<void>Reprendre la lecture de la vidéo.
seek(options)
Section titled “seek(options)”seek(options: { position: number }) => Promise<void>Aller à une position spécifique dans la vidéo.
| Param | Type |
|---|---|
options | { position: number } |
setPlaybackSpeed(options)
Section titled “setPlaybackSpeed(options)”setPlaybackSpeed(options: { speed: number }) => Promise<void>Définir la vitesse de lecture.
| Param | Type |
|---|---|
options | { speed: number } |
setVolume(options)
Section titled “setVolume(options)”setVolume(options: { volume: number }) => Promise<void>Définir le volume audio (0.0 à 1.0).
| Param | Type |
|---|---|
options | { volume: number } |
selectAudioTrack(options)
Section titled “selectAudioTrack(options)”selectAudioTrack(options: { trackIndex: number }) => Promise<void>Sélectionner une piste audio par index.
| Param | Type |
|---|---|
options | { trackIndex: number } |
selectCaptionTrack(options)
Section titled “selectCaptionTrack(options)”selectCaptionTrack(options: { trackIndex: number }) => Promise<void>Sélectionner une piste de sous-titres par index.
| Param | Type |
|---|---|
options | { trackIndex: number } |
stop()
Section titled “stop()”stop() => Promise<void>Arrêter la lecture et fermer le lecteur.
Interfaces
Section titled “Interfaces”VideoOptions
Section titled “VideoOptions”| Prop | Type | Description |
|---|---|---|
mediaUrl | string | URL du fichier vidéo |
title | string | Titre de la vidéo (optionnel) |
description | string | Description de la vidéo (optionnel) |
poster | string | URL de l’affiche/miniature (optionnel) |
autoStart | boolean | Démarrage automatique de la lecture (optionnel, par défaut : true) |
PlaylistOptions
Section titled “PlaylistOptions”| Prop | Type | Description |
|---|---|---|
playlistUrl | string | URL du JSON de playlist JW |
autoStart | boolean | Démarrage automatique de la lecture (optionnel) |
Écouteurs d’événements
Section titled “Écouteurs d’événements”Événements disponibles
Section titled “Événements disponibles”playerReady- Le lecteur est initialisé et prêtplay- La lecture de la vidéo a commencépause- La lecture de la vidéo est mise en pausecomplete- La lecture de la vidéo est terminéeerror- Le lecteur a rencontré une erreurseek- L’utilisateur s’est déplacé à une position différentetime- Le temps de lecture a été mis à jourbufferChange- L’état du buffer a changé
Exemple d’événement
Section titled “Exemple d’événement”// Écouter les mises à jour du tempsJWPlayer.addListener('time', (data) => { console.log('Temps actuel:', data.position); console.log('Durée:', data.duration);});
// Écouter les changements de bufferJWPlayer.addListener('bufferChange', (data) => { console.log('Buffering:', data.buffering);});
// Supprimer l'écouteur lorsque terminéconst listener = await JWPlayer.addListener('play', (data) => { console.log('En lecture');});
// Plus tard...listener.remove();Utilisation avancée
Section titled “Utilisation avancée”Lecture avec sous-titres
Section titled “Lecture avec sous-titres”await JWPlayer.playVideo({ mediaUrl: 'https://example.com/video.mp4', title: 'Vidéo avec sous-titres', poster: 'https://example.com/poster.jpg', tracks: [ { file: 'https://example.com/captions-en.vtt', label: 'Anglais', kind: 'captions' }, { file: 'https://example.com/captions-es.vtt', label: 'Espagnol', kind: 'captions' } ]});Contrôles de lecture personnalisés
Section titled “Contrôles de lecture personnalisés”import { JWPlayer } from '@capgo/capacitor-jw-player';
// Commencer la lectureawait JWPlayer.play();
// Mettre en pause après 10 secondessetTimeout(() => { JWPlayer.pause();}, 10000);
// Aller à 30 secondesawait JWPlayer.seek({ position: 30 });
// Définir la vitesse de lecture à 1.5xawait JWPlayer.setPlaybackSpeed({ speed: 1.5 });
// Définir le volume à 50%await JWPlayer.setVolume({ volume: 0.5 });Bonnes pratiques
Section titled “Bonnes pratiques”- Fournissez toujours une image d’affiche pour une meilleure expérience utilisateur
- Gérez les erreurs du lecteur de manière élégante avec des messages d’erreur appropriés
- Nettoyez les écouteurs d’événements lorsque le composant se démonte
- Testez la lecture vidéo sur les appareils iOS et Android
- Utilisez des formats vidéo appropriés (MP4 recommandé)
- Implémentez des états de chargement pendant l’initialisation de la vidéo
- Considérez les conditions réseau lors du streaming
Dépannage
Section titled “Dépannage”La vidéo ne se lit pas
Section titled “La vidéo ne se lit pas”- Vérifiez que votre clé de licence JW Player est correcte
- Vérifiez que l’URL de la vidéo est accessible et valide
- Assurez-vous des en-têtes CORS appropriés si vous utilisez un serveur personnalisé
- Testez avec différents formats vidéo
Problèmes de plein écran
Section titled “Problèmes de plein écran”- Le plugin lit toujours en mode plein écran
- Assurez-vous des permissions appropriées pour le plein écran dans votre application
Performance
Section titled “Performance”- Utilisez une qualité vidéo appropriée pour les appareils cibles
- Considérez le streaming adaptatif pour de meilleures performances
- Implémentez des indicateurs de buffering appropriés