Erste Schritte
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-jw-player`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/de/docs/plugins/jw-player/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
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 });Bewährte Methoden
Section titled “Bewährte Methoden”- 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