Для управления плеером используется объект со следующими свойствами и методами:
Events: PlayerEvent
on(type: PlayerEvent, listener: Function): this
Подписаться на событие плеера. См. обработчики событий.
once(type: PlayerEvent, listener: Function): this
Подписаться на событие плеера. Обработчик события будет вызван только один раз.
off(type: PlayerEvent, listener: Function): this
Отписаться от события плеера.
isPaused(): Promise<boolean>
Проигрывание приостановлено?
isEnded(): Promise<boolean>
Проигрывание дошло до конца?
play(): Promise<void>
Начать проигрывание
pause(): Promise<void>
Приостановить проигрывание
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>
Уровень громкости (0..1, где 0 это 0%, а 1 это 100%)
setVolume(value: number): Promise<void>
Установить уровень громкости (0..1, где 0 это 0%, а 1 это 100%)
getPlaybackRate(): Promise<number>
Скорость воспроизведения (1 - нормальная скорость воспроизведения)
setPlaybackRate(value: number): Promise<void>
Установить скорость воспроизведения (1 - нормальная скорость воспроизведения)
getVideoQualityList(): Promise<VideoQuality[]>
Список доступных качеств
getCurrentVideoQuality(): Promise<VideoQuality>
Текущее качество видео
setVideoQuality(quality: VideoQuality): Promise<void>
Установить качество видео
enableTextTrack(lang: string): Promise<void>
Включить субтитры на указанном языке
disableTextTrack(): Promise<void>
Выключить субтитры
setPlaylistItemOptions(options: PlaylistItemOptions): Promise<void>
Установить параметры для текущего ролика.
interface PlaylistItemOptions {
/** Заголовок видео-ролика. Отображается в верхней части плеера. */
title?: string;
/** Подзаголовок видео-ролика. Отображается под основным заголовком. */
subtitle?: string;
/** Картинка с постером для видео-ролика. */
poster?: string;
/** Субтитры (Video text tracks). */
vtt?: {
/** Заголовок */
label: string;
/** Url файла субтитров */
src: string;
/** Язык субтитров */
srcLang: string;
}[];
/** Главы - разделение отрезков времени. */
chapters?: {
/** Точка времени (в секундах) */
position: number;
/** Заголовок */
title: string;
}[];
/** Дополнительные материалы для скачивания. */
files?: {
list: {
name: string;
url: string;
mime: string;
size?: number;
}[];
archiveUrl?: string;
};
/** @experimental Закладки, привязанные ко времени. */
bookmarks?: {
id: string;
/** Время в секундах. */
time: number;
}[];
/** @experimental Призывы к действию (CTA). */
cta?: {
id: string;
title: string;
description?: string;
/** Возможность закрыть/пропустить. */
skipable?: boolean;
buttonStyle?: CSSProperties;
/** Срабатывание CTA */
trigger: {
/** Процент текущего времени, например: `[0, 100]`. */
percentages: number[];
/** Точки времени (сек.), например: `[60, 600]`. */
timePoints: number[];
/** На паузе */
pause: boolean;
};
}[];
/** @experimental DRM. */
drm?: {
auth?: {
/** Пользовательский токен для авторизации. */
token?: string;
};
};
/** @experimental Реклама. */
ad?: {
adTagUrl: string;
};
}
closeCTA(): Promise<void>
Закрыть CTA. @experimental
isFullscreen(): Promise<boolean>
Полноэкранный режим просмотра?
setFullscreen(fullscreen: boolean): Promise<void>
Установить значение для полноэкранного режима просмотра
destroy(): void
Удалить плеер (<iframe>
) из DOM
В каждый обработчик события передается объект события с данными о нем.
{
/** Тип события */
type: PlayerEvent;
/** Данные события, зависят от типа события, могут отсутствовать */
data: Data;
/** Объект управления плеером, соответствующий событию */
target: IframePlayerController;
}
PlayerEvent.Ready
{
quality: VideoQuality;
qualityLevels: VideoQualityLevels;
currentTime: number;
duration: number;
}
PlayerEvent.QualityChanged
{
quality: VideoQuality;
}
PlayerEvent.AutoQualityChanged
{
quality: VideoQuality;
}
PlayerEvent.CurrentTrackChanged
{
item: { id?: string }
}
PlayerEvent.SeekChapter
{
position: number;
}
PlayerEvent.SizeChanged
{
width: number;
height: number;
}
PlayerEvent.Play
У события нет данных.
PlayerEvent.Playing
У события нет данных.
PlayerEvent.Waiting
У события нет данных.
PlayerEvent.Pause
У события нет данных.
PlayerEvent.Ended
У события нет данных.
PlayerEvent.TimeUpdate
{
currentTime: number;
}
PlayerEvent.Progress
{
bufferedTime: number;
}
PlayerEvent.Seeked
У события нет данных.
PlayerEvent.DurationChange
{
duration: number;
}
PlayerEvent.VolumeChange
{
volume: number;
muted: boolean;
}
PlayerEvent.PlaybackRateChange
{
playbackRate: number;
}
PlayerEvent.Seeking
У события нет данных.
PlayerEvent.FullscreenChange
{
isFullscreen: boolean;
video: boolean;
}
PlayerEvent.CallAction
{
id: string;
}
PlayerEvent.CallBookmark
{
id: string;
time: number;
}
PlayerEvent.Error
{
error: unknown;
}
PlayerEvent.Destroy
У события нет данных.