Primeros pasos
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-video-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/docs/plugins/video-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.
Instalar
Sección titulada “Instalación”Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego usa el siguiente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-video-player` plugin in my project.Si prefieres la configuración manual, instala el plugin ejecutando los siguientes comandos y sigue las instrucciones específicas para cada plataforma a continuación:
bun add @capgo/capacitor-video-playerbunx cap syncImportar
Sección titulada “Importar”import { VideoPlayer } from '@capgo/capacitor-video-player';Inicio rápido
Sección titulada “Inicio rápido”import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.initPlayer({ mode: 'fullscreen' });console.log(result);Ejemplo: isPlaying
Sección titulada “Ejemplo: isPlaying”import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.isPlaying({ playerId: 'player-id-123' });console.log(result);Ejemplo: play
Sección titulada “Ejemplo: play”import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.play({ playerId: 'player-id-123' });console.log(result);Errores comunes
Sección titulada “Errores comunes”- Sync nativo: ejecutar
bunx cap synctras actualizar los plugins. - Fuente de verdad: confiar
src/definitions.tsen el repo de GitHub.
Resumen de API
Sección titulada “Descripción general de API”initPlayer
Sección titulada “initPlayer”Inicializa un reproductor de video
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.initPlayer({ mode: 'fullscreen' });console.log(result);isPlaying
Sección titulada “isPlaying”Devuelve si un playerId está reproduciendo
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.isPlaying({ playerId: 'player-id-123' });console.log(result);Reproduce el video actual usando un playerId
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.play({ playerId: 'player-id-123' });console.log(result);Pausa el video actual usando un playerId
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.pause({ playerId: 'player-id-123' });console.log(result);getDuration
Sección titulada “getDuration”Obtiene la duración del video actual con un playerId
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.getDuration({ playerId: 'player-id-123' });console.log(result);getCurrentTime
Sección titulada “getCurrentTime”Obtiene el tiempo actual del video con un playerId
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.getCurrentTime({ playerId: 'player-id-123' });console.log(result);setCurrentTime
Sección titulada “setCurrentTime”Establece el tiempo actual para buscar en el video desde un playerId dado
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.setCurrentTime({ playerId: 'player-id-123', seektime: 10,});console.log(result);getVolume
Sección titulada “getVolume”Obtiene el volumen del video actual desde un playerId dado
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.getVolume({ playerId: 'player-id-123' });console.log(result);setVolume
Sección titulada “setVolume”Establece el volumen del video actual desde un playerId dado
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.setVolume({ volume: 0.5 });console.log(result);getMuted
Sección titulada “getMuted”Obtiene si el video actual está silenciado desde un playerId dado
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.getMuted({ playerId: 'player-id-123' });console.log(result);setMuted
Sección titulada “setMuted”Establece si el video actual está silenciado mediante un playerId determinado
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.setMuted({ muted: true });console.log(result);setRate
Sección titulada “setRate”Establece la velocidad del video actual mediante un playerId
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.setRate({ rate: 1 });console.log(result);getRate
Sección titulada “getRate”Obtiene la velocidad del video actual mediante un playerId
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.getRate({ playerId: 'player-id-123' });console.log(result);stopAllPlayers
Sección titulada “stopAllPlayers”Detiene todos los reproductores en ejecución
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.stopAllPlayers();console.log(result);showController
Sección titulada “showController”Mostrar controlador
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.showController();console.log(result);isControllerIsFullyVisible
Sección titulada “isControllerIsFullyVisible”isControllerIsFullyVisible
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.isControllerIsFullyVisible();console.log(result);exitPlayer
Sección titulada “exitPlayer”Exit player
import { VideoPlayer } from '@capgo/capacitor-video-player';
const result = await VideoPlayer.exitPlayer();console.log(result);Referencia de tipos
Sección titulada “Referencia de tipos”capVideoPlayerOptions
Sección titulada “capVideoPlayerOptions”export interface capVideoPlayerOptions { /** * Player mode * - "fullscreen" * - "embedded" (Web only) */ mode?: string; /** * The url of the video to play */ url?: string; /** * The url of subtitle associated with the video */ subtitle?: string; /** * The language of subtitle * see https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers */ language?: string; /** * SubTitle Options */ subtitleOptions?: SubTitleOptions; /** * Id of DIV Element parent of the player */ playerId?: string; /** * Initial playing rate */ rate?: number; /** * Exit on VideoEnd (iOS, Android) * default: true */ exitOnEnd?: boolean; /** * Loop on VideoEnd when exitOnEnd false (iOS, Android) * default: false */ loopOnEnd?: boolean; /** * Picture in Picture Enable (iOS, Android) * default: true */ pipEnabled?: boolean; /** * Background Mode Enable (iOS, Android) * default: true */ bkmodeEnabled?: boolean; /** * Show Controls Enable (iOS, Android) * default: true */ showControls?: boolean; /** * Display Mode ["all", "portrait", "landscape"] (iOS, Android) * default: "all" */ displayMode?: string; /** * Component Tag or DOM Element Tag (React app) */ componentTag?: string; /** * Player Width (mode "embedded" only) */ width?: number; /** * Player height (mode "embedded" only) */ height?: number; /** * Headers for the request (iOS, Android) * by Manuel García Marín (https://github.com/PhantomPainX) */ headers?: { [key: string]: string; }; /** * Title shown in the player (Android) * by Manuel García Marín (https://github.com/PhantomPainX) */ title?: string; /** * Subtitle shown below the title in the player (Android) * by Manuel García Marín (https://github.com/PhantomPainX) */ smallTitle?: string; /** * ExoPlayer Progress Bar and Spinner color (Android) * by Manuel García Marín (https://github.com/PhantomPainX) * Must be a valid hex color code * default: #FFFFFF */ accentColor?: string; /** * Chromecast enable/disable (Android) * by Manuel García Marín (https://github.com/PhantomPainX) * default: true */ chromecast?: boolean; /** * Artwork url to be shown in Chromecast player * by Manuel García Marín (https://github.com/PhantomPainX) * default: "" */ artwork?: string; /** * DRM configuration for protected content (iOS: FairPlay, Android: Widevine) */ drm?: DrmOptions;}capVideoPlayerResult
Sección titulada “capVideoPlayerResult”export interface capVideoPlayerResult { /** * result set to true when successful else false */ result?: boolean; /** * method name */ method?: string; /** * value returned */ value?: any; /** * message string */ message?: string;}capVideoPlayerIdOptions
Sección titulada “capVideoPlayerIdOptions”export interface capVideoPlayerIdOptions { /** * Id of DIV Element parent of the player */ playerId?: string;}capVideoTimeOptions
Sección titulada “capVideoTimeOptions”export interface capVideoTimeOptions { /** * Id of DIV Element parent of the player */ playerId?: string; /** * Video time value you want to seek to */ seektime?: number;}capVideoVolumeOptions
Sección titulada “capVideoVolumeOptions”export interface capVideoVolumeOptions { /** * Id of DIV Element parent of the player */ playerId?: string; /** * Volume value between [0 - 1] */ volume?: number;}capVideoMutedOptions
Sección titulada “capVideoMutedOptions”export interface capVideoMutedOptions { /** * Id of DIV Element parent of the player */ playerId?: string; /** * Muted value true or false */ muted?: boolean;}capVideoRateOptions
Sección titulada “capVideoRateOptions”export interface capVideoRateOptions { /** * Id of DIV Element parent of the player */ playerId?: string; /** * Rate value */ rate?: number;}SubTitleOptions
Sección titulada “SubTitleOptions”export interface SubTitleOptions { /** * Foreground Color in RGBA (default rgba(255,255,255,1) */ foregroundColor?: string; /** * Background Color in RGBA (default rgba(0,0,0,1) */ backgroundColor?: string; /** * Font Size in pixels (default 16) */ fontSize?: number;
/** * Get the native Capacitor plugin version * * @returns {Promise<{ id: string }>} an Promise with version for this device * @throws An error if the something went wrong */ getPluginVersion(): Promise<{ version: string }>;}DrmOptions
Sección titulada “DrmOptions”export interface DrmOptions { /** * FairPlay DRM configuration (iOS) */ fairplay?: FairPlayDrmOptions; /** * PlayReady DRM configuration */ playready?: PlayreadyDrmOptions; /** * Widevine DRM configuration (Android) */ widevine?: WidevineDrmOptions;}FairPlayDrmOptions
Sección titulada “FairPlayDrmOptions”export interface FairPlayDrmOptions { /** * The URL to fetch the FairPlay certificate */ certificateUrl?: string; /** * The URL to send the SPC and receive the CKC license (FairPlay license server URL) */ contentKeySpcUrl?: string;}PlayreadyDrmOptions
Sección titulada “PlayreadyDrmOptions”export interface PlayreadyDrmOptions { /** * The URL to fetch the PlayReady license */ certificateUrl?: string;}WidevineDrmOptions
Sección titulada “WidevineDrmOptions”export interface WidevineDrmOptions { /** * The URL to fetch the Widevine license */ certificateUrl?: string;}Fuente de verdad
Sección titulada “Fuente de verdad”Esta página se genera a partir del src/definitions.ts. Vuelve a ejecutar el sync cuando el API público cambie en el upstream.
Continúa desde Primeros pasos
Sección titulada “Continúa desde Primeros pasos”Si estás usando Primeros pasos para planificar el comportamiento de los medios y la interfaz nativos, conéctalo con Uso de @capgo/capacitor-video-player para la capacidad nativa al usar @capgo/capacitor-video-player, Uso de @capgo/capacitor-live-activities para la capacidad nativa en Uso de @capgo/capacitor-live-activities, @capgo/capacitor-live-activities para los detalles de implementación en @capgo/capacitor-live-activities, @capgo/capacitor-video-player para los detalles de implementación en @capgo/capacitor-video-player, y Usando @capgo/capacitor-native-navigation para la capacidad nativa al usar @capgo/capacitor-native-navigation.