Pular navegação
Atualizado: 12.08.2026

Este componente incorpora o Kinescope Player em aplicações Angular. Ele usa um iframe e a IFrame API internamente. Repositório: kinescope/angular-kinescope-player.

Instalação

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

Início rápido

import { KinescopePlayerComponent } from '@kinescope/angular-kinescope-player'

@NgModule({
  imports: [KinescopePlayerComponent],
})
export class AppModule {}
import { AfterViewInit, Component, ViewChild } from '@angular/core'
import {
  KinescopePlayerComponent,
  KinescopePlayerConfig,
} from '@kinescope/angular-kinescope-player'

@Component({
  template: `<kinescope-player #kinescope [config]="config"></kinescope-player>`,
})
export class PlayerComponent implements AfterViewInit {
  config: KinescopePlayerConfig = {
    videoId: 'VIDEO_ID',
  }

  @ViewChild('kinescope') private kinescope!: KinescopePlayerComponent

  ngAfterViewInit() {
    // Methods are available after the player is initialized.
    // void this.kinescope.play()
  }
}

Configuração (props)

Passe os parâmetros como um objeto para [config].

CampoTipoPadrãoObrigatório
videoIdstring—sim
classNamestring—não
styleany—não
titlestring—não
subtitlestring—não
posterstring—não
chaptersChapter[]—não
vttVtt[]—não
widthnumber | string100%não
heightnumber | string100%não
autoPlayboolean | 'viewable'falsenão
autoPauseboolean | 'reset'truenão
loopbooleanfalsenão
playsInlinebooleantruenão
mutedbooleanfalsenão
language'en' | 'ru'automáticonão
controlsbooleantruenão
mainPlayButtonbooleantruenão
playbackRateButtonbooleanfalsenão
externalIdstring—não
drmAuthTokenstring—não
actionsAction[]—não
bookmarksBookmark[]—não
watermarkWatermark—não
localStoragebooleantruenão

Tipos da configuração

Chapter

type Chapter = {
  position: number
  title: string
}

Vtt

type Vtt = {
  label: string
  src: string
  srcLang: string
}

Action

type Action = ActionToolBar | ActionCallToAction

type ActionToolBar = {
  id: string
  type: 'tool'
  title?: string
  icon: 'note'
}

type ActionCallToAction = {
  id: string
  type: 'cta'
  title: string
  description?: string
  skipable?: boolean
  buttonStyle?: CSSProperties
  trigger: {
    percentages: number[]
    timePoints: number[]
    pause: boolean
  }
}

Bookmark

type Bookmark = {
  id: string
  time: number
  title?: string
}

Watermark

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

Eventos

EventoDados
onJSLoad—
onJSLoadError—
onReady{ currentTime, duration, quality, qualityLevels }
onQualityChanged{ quality }
onAutoQualityChanged{ quality }
onSeekChapter{ position }
onSizeChanged{ width, height }
onPlay—
onPlaying—
onWaiting—
onPause—
onEnded—
onTimeUpdate{ currentTime }
onProgress{ bufferedTime }
onDurationChange{ duration }
onVolumeChange{ muted, volume }
onPlaybackRateChange{ playbackRate }
onSeeking—
onFullscreenChange{ isFullscreen, video }
onCallAction{ id, title?, type }
onCallBookmark{ id, time, title? }
onError{ error }
onDestroy—

Métodos

Chame os métodos por @ViewChild, por exemplo, this.kinescope.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>

Próximos passos