Saltar al contenido

Comenzando

Terminal window
npm install @capgo/capacitor-jw-player
npx cap sync

Necesitarás una cuenta y clave de licencia de JW Player para usar este plugin. Regístrate en JW Player si no tienes una.

Agrega tu clave de licencia de JW Player a tu Info.plist:

<key>JWPlayerLicenseKey</key>
<string>YOUR_LICENSE_KEY</string>

Agrega tu clave de licencia de JW Player a android/app/src/main/res/values/strings.xml:

<resources>
<string name="jw_player_license_key">YOUR_LICENSE_KEY</string>
</resources>
import { JWPlayer } from '@capgo/capacitor-jw-player';
// Reproducir un solo video
await JWPlayer.playVideo({
mediaUrl: 'https://example.com/video.mp4',
title: 'Mi Video',
description: 'Descripción del video',
poster: 'https://example.com/poster.jpg'
});
// Reproducir una lista de reproducción
await JWPlayer.playPlaylist({
playlistUrl: 'https://example.com/playlist.json'
});
// Escuchar eventos del reproductor
JWPlayer.addListener('playerReady', () => {
console.log('El reproductor está listo');
});
JWPlayer.addListener('play', (data) => {
console.log('El video comenzó a reproducirse');
});
JWPlayer.addListener('pause', (data) => {
console.log('Video pausado');
});
JWPlayer.addListener('complete', (data) => {
console.log('Reproducción de video completada');
});
JWPlayer.addListener('error', (error) => {
console.error('Error del reproductor:', error);
});
playVideo(options: VideoOptions) => Promise<void>

Reproduce un solo video en modo pantalla completa.

ParamType
optionsVideoOptions
playPlaylist(options: PlaylistOptions) => Promise<void>

Reproduce una lista de reproducción en modo pantalla completa.

ParamType
optionsPlaylistOptions
pause() => Promise<void>

Pausar el video actual.

play() => Promise<void>

Reanudar la reproducción del video.

seek(options: { position: number }) => Promise<void>

Buscar una posición específica en el video.

ParamType
options{ position: number }
setPlaybackSpeed(options: { speed: number }) => Promise<void>

Establecer la velocidad de reproducción.

ParamType
options{ speed: number }
setVolume(options: { volume: number }) => Promise<void>

Establecer el volumen de audio (0.0 a 1.0).

ParamType
options{ volume: number }
selectAudioTrack(options: { trackIndex: number }) => Promise<void>

Seleccionar una pista de audio por índice.

ParamType
options{ trackIndex: number }
selectCaptionTrack(options: { trackIndex: number }) => Promise<void>

Seleccionar una pista de subtítulos por índice.

ParamType
options{ trackIndex: number }
stop() => Promise<void>

Detener la reproducción y cerrar el reproductor.

PropTypeDescription
mediaUrlstringURL del archivo de video
titlestringTítulo del video (opcional)
descriptionstringDescripción del video (opcional)
posterstringURL del póster/miniatura (opcional)
autoStartbooleanIniciar reproducción automáticamente (opcional, predeterminado: true)
PropTypeDescription
playlistUrlstringURL del JSON de la lista de reproducción JW
autoStartbooleanIniciar reproducción automáticamente (opcional)
  • playerReady - El reproductor está inicializado y listo
  • play - Reproducción de video iniciada
  • pause - Reproducción de video pausada
  • complete - Reproducción de video completada
  • error - El reproductor encontró un error
  • seek - El usuario buscó una posición diferente
  • time - Tiempo de reproducción actualizado
  • bufferChange - Estado del buffer cambió
// Escuchar actualizaciones de tiempo
JWPlayer.addListener('time', (data) => {
console.log('Tiempo actual:', data.position);
console.log('Duración:', data.duration);
});
// Escuchar cambios de buffer
JWPlayer.addListener('bufferChange', (data) => {
console.log('Buffering:', data.buffering);
});
// Eliminar listener cuando termines
const listener = await JWPlayer.addListener('play', (data) => {
console.log('Reproduciendo');
});
// Más tarde...
listener.remove();
await JWPlayer.playVideo({
mediaUrl: 'https://example.com/video.mp4',
title: 'Video con Subtítulos',
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'
}
]
});
import { JWPlayer } from '@capgo/capacitor-jw-player';
// Comenzar a reproducir
await JWPlayer.play();
// Pausar después de 10 segundos
setTimeout(() => {
JWPlayer.pause();
}, 10000);
// Buscar a los 30 segundos
await JWPlayer.seek({ position: 30 });
// Establecer velocidad de reproducción a 1.5x
await JWPlayer.setPlaybackSpeed({ speed: 1.5 });
// Establecer volumen al 50%
await JWPlayer.setVolume({ volume: 0.5 });
  • Siempre proporciona una imagen de póster para mejor experiencia del usuario
  • Maneja los errores del reproductor con mensajes de error apropiados
  • Limpia los listeners de eventos cuando el componente se desmonte
  • Prueba la reproducción de video en dispositivos iOS y Android
  • Usa formatos de video apropiados (MP4 recomendado)
  • Implementa estados de carga mientras el video se inicializa
  • Considera las condiciones de red al transmitir
  • Verifica que tu clave de licencia de JW Player sea correcta
  • Verifica que la URL del video sea accesible y válida
  • Asegúrate de tener cabeceras CORS apropiadas si usas servidor personalizado
  • Prueba con diferentes formatos de video
  • El plugin siempre reproduce en modo pantalla completa
  • Asegúrate de tener permisos apropiados para pantalla completa en tu app
  • Usa calidad de video apropiada para dispositivos objetivo
  • Considera streaming adaptativo para mejor rendimiento
  • Implementa indicadores de buffering apropiados