Pular navegação
Atualizado: 12.08.2026

Este componente incorpora o Kinescope Player em aplicações Vue 3 e está disponível desde a versão 2.0.0 do pacote. Ele usa um iframe e a IFrame API internamente. Repositório: kinescope/vue-kinescope-player.

Instalação

npm install @kinescope/vue-kinescope-player --save

Início rápido

Registre o componente globalmente:

import { createApp } from 'vue'
import KinescopePlayer from '@kinescope/vue-kinescope-player'
import App from './App.vue'

const app = createApp(App)
app.use(KinescopePlayer)
app.mount('#app')

Registre-o localmente em um componente:

<script setup>
import { KinescopePlayer } from '@kinescope/vue-kinescope-player'
</script>

<template>
  <kinescope-player video-id="VIDEO_ID" />
</template>

Eventos

<template>
  <kinescope-player
    video-id="VIDEO_ID"
    @ready="handleReady"
    @play="handlePlay"
  />
</template>

Métodos

Os métodos ficam disponíveis por ref → player:

<template>
  <div>
    <kinescope-player
      ref="kinescope"
      video-id="VIDEO_ID"
      @ready="ready = true"
    />
    <button :disabled="!ready" @click="kinescope.player.play()">Reproduzir</button>
  </div>
</template>

<script setup>
import { ref } from 'vue'
import { KinescopePlayer } from '@kinescope/vue-kinescope-player'

const ready = ref(false)
const kinescope = ref(null)
</script>

Props

Use kebab-case nos templates (video-id) e camelCase nos scripts.

Props principais

PropTipoPadrãoDescrição
video-idnumber | string—ID do vídeo (obrigatória)
widthnumber | string100%Largura
heightnumber | string100%Altura
external-idstring—ID externo para análise de dados

Comportamento

PropTipoPadrãoDescrição
auto-playboolean | stringfalseReprodução automática. 'viewable' inicia a reprodução quando o player entra na área visível; 'hover' inicia ao passar o cursor
mutedbooleanfalseInicia sem som
loopbooleanfalseRepete a reprodução
plays-inlinebooleantrueReproduz em linha em dispositivos móveis, sem entrar automaticamente no modo de tela cheia
volumenumber—Volume de 0 a 1. Atualizado de forma reativa, sem recarregar o player
playback-ratenumber—Velocidade de reprodução. 1 é a velocidade normal. Atualizada de forma reativa
text-trackboolean | string—Legendas ao carregar: true ou um código de idioma, como 'en'

Interface

PropTipoPadrãoDescrição
languagestringenIdioma da interface
controlsbooleantrueTodos os controles. false oculta o título e a barra de controle
titlebooleantrueTítulo exibido sobre o vídeo
control-barboolean | stringtrueBarra de controle inferior. Use 'always' para mantê-la visível
progress-barbooleantrueBarra de progresso
main-play-buttonbooleantrueBotão grande de reprodução no centro
play-buttonbooleantrueBotão Reproduzir/Pausar na barra de controle
volume-buttonbooleantrueBotão de volume
playback-rate-buttonbooleanfalseBotão de velocidade de reprodução
playback-ratesarray | boolean—Lista de velocidades, por exemplo, [0.5, 1, 1.5, 2]. Use false para ocultar o botão
subtitles-buttonbooleantrueBotão de legendas
settings-buttonbooleantrueBotão de configurações
pip-buttonbooleantrueBotão Picture-in-Picture
fullscreen-buttonboolean | stringtrueBotão de tela cheia. Use 'force' para exibi-lo sempre
video-fitstringcontaincontain | cover | fill
watermarkstring | object—Marca d’água como string ou objeto. Atualizada de forma reativa

Objeto da marca d’água:

{
  text: string
  mode?: 'random' | 'stripes'
  scale?: number
  displayTimeout?: number | { visible: number; hidden: number }
}

Eventos

EventoDados
js-load—
js-load-error—
ready{ currentTime, duration, quality, qualityLevels }
quality-changed{ quality }
auto-quality-changed{ quality }
seek-chapter{ position }
size-changed{ width, height }
play—
playing—
waiting—
pause—
ended—
time-update{ currentTime }
progress{ bufferedTime }
duration-change{ duration }
volume-change{ muted, volume }
playback-rate-change{ playbackRate }
seeking—
seeked—
fullscreen-change{ isFullscreen, video }
call-action{ id, title?, type }
call-bookmark{ id, time, title? }
error{ error }
destroy—

Métodos

Chame um método com kinescope.value.player.play().

MétodoParâmetrosResultado
isPaused—Promise<boolean>
isEnded—Promise<boolean>
play—Promise<void>
pause—Promise<boolean>
stop—Promise<void>
getCurrentTime—Promise<number>
getDuration—Promise<number>
seekTo(time: number)Promise<void>
isMuted—Promise<boolean>
mute—Promise<void>
unmute—Promise<void>
getVolume—Promise<number>
setVolume(value: number)Promise<void>
getPlaybackRate—Promise<number>
setPlaybackRate(value: number)Promise<void>
getVideoQualityList—Promise<VideoQuality[]>
getCurrentVideoQuality—Promise<VideoQuality>
setVideoQuality(quality: VideoQuality)Promise<void>
enableTextTrack(lang: string)Promise<void>
disableTextTrack—Promise<void>
closeCTA—Promise<void>
isFullscreen—Promise<boolean>
setFullscreen(fullscreen: boolean)Promise<void>
isPip—Promise<boolean>
setPip(pip: boolean)Promise<void>
getPlaylistItem—Promise<object>
switchTo(id: string)Promise<void>
next—Promise<void>
previous—Promise<void>

Próximos passos