Erste Schritte
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 syncVoraussetzungen
Section titled “Voraussetzungen”Sie benötigen ein JW Player-Konto und einen Lizenzschlüssel, um dieses Plugin zu verwenden. Registrieren Sie sich bei JW Player, wenn Sie noch keines haben.
Plattform-Konfiguration
Section titled “Plattform-Konfiguration”Fügen Sie Ihren JW Player Lizenzschlüssel zu Ihrer Info.plist hinzu:
<key>JWPlayerLicenseKey</key><string>YOUR_LICENSE_KEY</string>Android
Section titled “Android”Fügen Sie Ihren JW Player Lizenzschlüssel zu android/app/src/main/res/values/strings.xml hinzu:
<resources> <string name="jw_player_license_key">YOUR_LICENSE_KEY</string></resources>Verwendungsbeispiel
Section titled “Verwendungsbeispiel”import { JWPlayer } from '@capgo/capacitor-jw-player';
// Einzelnes Video abspielenawait JWPlayer.playVideo({ mediaUrl: 'https://example.com/video.mp4', title: 'Mein Video', description: 'Video-Beschreibung', poster: 'https://example.com/poster.jpg'});
// Playlist abspielenawait JWPlayer.playPlaylist({ playlistUrl: 'https://example.com/playlist.json'});
// Player-Ereignisse abhörenJWPlayer.addListener('playerReady', () => { console.log('Player ist bereit');});
JWPlayer.addListener('play', (data) => { console.log('Video-Wiedergabe gestartet');});
JWPlayer.addListener('pause', (data) => { console.log('Video pausiert');});
JWPlayer.addListener('complete', (data) => { console.log('Video-Wiedergabe abgeschlossen');});
JWPlayer.addListener('error', (error) => { console.error('Player-Fehler:', error);});API-Referenz
Section titled “API-Referenz”playVideo(options)
Section titled “playVideo(options)”playVideo(options: VideoOptions) => Promise<void>Spielt ein einzelnes Video im Vollbildmodus ab.
| Parameter | Typ |
|---|---|
options | VideoOptions |
playPlaylist(options)
Section titled “playPlaylist(options)”playPlaylist(options: PlaylistOptions) => Promise<void>Spielt eine Playlist im Vollbildmodus ab.
| Parameter | Typ |
|---|---|
options | PlaylistOptions |
pause()
Section titled “pause()”pause() => Promise<void>Pausiert das aktuelle Video.
play()
Section titled “play()”play() => Promise<void>Setzt die Video-Wiedergabe fort.
seek(options)
Section titled “seek(options)”seek(options: { position: number }) => Promise<void>Springt zu einer bestimmten Position im Video.
| Parameter | Typ |
|---|---|
options | { position: number } |
setPlaybackSpeed(options)
Section titled “setPlaybackSpeed(options)”setPlaybackSpeed(options: { speed: number }) => Promise<void>Setzt die Wiedergabegeschwindigkeit.
| Parameter | Typ |
|---|---|
options | { speed: number } |
setVolume(options)
Section titled “setVolume(options)”setVolume(options: { volume: number }) => Promise<void>Setzt die Audiolautstärke (0.0 bis 1.0).
| Parameter | Typ |
|---|---|
options | { volume: number } |
selectAudioTrack(options)
Section titled “selectAudioTrack(options)”selectAudioTrack(options: { trackIndex: number }) => Promise<void>Wählt eine Audiospur nach Index aus.
| Parameter | Typ |
|---|---|
options | { trackIndex: number } |
selectCaptionTrack(options)
Section titled “selectCaptionTrack(options)”selectCaptionTrack(options: { trackIndex: number }) => Promise<void>Wählt eine Untertitelspur nach Index aus.
| Parameter | Typ |
|---|---|
options | { trackIndex: number } |
stop()
Section titled “stop()”stop() => Promise<void>Stoppt die Wiedergabe und schließt den Player.
Schnittstellen
Section titled “Schnittstellen”VideoOptions
Section titled “VideoOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
mediaUrl | string | URL der Videodatei |
title | string | Video-Titel (optional) |
description | string | Video-Beschreibung (optional) |
poster | string | URL des Posters/Thumbnails (optional) |
autoStart | boolean | Wiedergabe automatisch starten (optional, Standard: true) |
PlaylistOptions
Section titled “PlaylistOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
playlistUrl | string | URL der JW Playlist JSON |
autoStart | boolean | Wiedergabe automatisch starten (optional) |
Event-Listener
Section titled “Event-Listener”Verfügbare Ereignisse
Section titled “Verfügbare Ereignisse”playerReady- Player ist initialisiert und bereitplay- Video-Wiedergabe gestartetpause- Video-Wiedergabe pausiertcomplete- Video-Wiedergabe abgeschlossenerror- Player hat einen Fehler festgestelltseek- Benutzer ist zu einer anderen Position gesprungentime- Wiedergabezeit aktualisiertbufferChange- Pufferstatus geändert
Event-Beispiel
Section titled “Event-Beispiel”// Zeit-Updates abhörenJWPlayer.addListener('time', (data) => { console.log('Aktuelle Zeit:', data.position); console.log('Dauer:', data.duration);});
// Pufferänderungen abhörenJWPlayer.addListener('bufferChange', (data) => { console.log('Puffert:', data.buffering);});
// Listener entfernen, wenn fertigconst listener = await JWPlayer.addListener('play', (data) => { console.log('Spielt ab');});
// Später...listener.remove();Erweiterte Verwendung
Section titled “Erweiterte Verwendung”Abspielen mit Untertiteln
Section titled “Abspielen mit Untertiteln”await JWPlayer.playVideo({ mediaUrl: 'https://example.com/video.mp4', title: 'Video mit Untertiteln', poster: 'https://example.com/poster.jpg', tracks: [ { file: 'https://example.com/captions-en.vtt', label: 'English', kind: 'captions' }, { file: 'https://example.com/captions-es.vtt', label: 'Spanish', kind: 'captions' } ]});Benutzerdefinierte Wiedergabesteuerung
Section titled “Benutzerdefinierte Wiedergabesteuerung”import { JWPlayer } from '@capgo/capacitor-jw-player';
// Wiedergabe startenawait JWPlayer.play();
// Nach 10 Sekunden pausierensetTimeout(() => { JWPlayer.pause();}, 10000);
// Zu 30 Sekunden springenawait JWPlayer.seek({ position: 30 });
// Wiedergabegeschwindigkeit auf 1.5x setzenawait JWPlayer.setPlaybackSpeed({ speed: 1.5 });
// Lautstärke auf 50% setzenawait JWPlayer.setVolume({ volume: 0.5 });Best Practices
Section titled “Best Practices”- Stellen Sie immer ein Posterbild für bessere Benutzererfahrung bereit
- Behandeln Sie Player-Fehler elegant mit passenden Fehlermeldungen
- Entfernen Sie Event-Listener, wenn Komponente demontiert wird
- Testen Sie Video-Wiedergabe auf iOS- und Android-Geräten
- Verwenden Sie geeignete Videoformate (MP4 empfohlen)
- Implementieren Sie Ladezustände, während Video initialisiert wird
- Berücksichtigen Sie Netzwerkbedingungen beim Streaming
Fehlerbehebung
Section titled “Fehlerbehebung”Video wird nicht abgespielt
Section titled “Video wird nicht abgespielt”- Überprüfen Sie, ob Ihr JW Player Lizenzschlüssel korrekt ist
- Prüfen Sie, ob die Video-URL zugänglich und gültig ist
- Stellen Sie sicher, dass korrekte CORS-Header vorhanden sind, wenn Sie einen benutzerdefinierten Server verwenden
- Testen Sie mit verschiedenen Videoformaten
Vollbild-Probleme
Section titled “Vollbild-Probleme”- Das Plugin spielt immer im Vollbildmodus ab
- Stellen Sie sicher, dass korrekte Berechtigungen für Vollbild in Ihrer App vorhanden sind
Performance
Section titled “Performance”- Verwenden Sie geeignete Video-Qualität für Zielgeräte
- Erwägen Sie adaptives Streaming für bessere Performance
- Implementieren Sie geeignete Puffer-Indikatoren