Состояние плеера
Вы можете получать информацию о состоянии видеоплеера и его параметров через специальный объект, содержащий поля со значениями состояний.
Параметры видеоплеера
Типы видео в плеере
Видеоплеер поддерживает воспроизведение трех типов видео:
-
VOD
— обычное видео, у которого зафиксировано и начало, и конец, а длительность является постоянной величиной.Например: фильм.
-
EVENT
— трансляция, у которой зафиксировано только начало, длительность непрерывно увеличивается, а правая граница шкалы времени отодвигается.Пользователь может перемотать видео в любую точку шкалы времени: от начала видео до текущей крайней точки правой границы шкалы. Когда пользователь смотрит видео и находится на правой границе, принято говорить, что «пользователь находится в онлайне». В какой-то момент времени правая граница может остановиться, тогда видео превратится в
VOD
.Например: трансляция футбольного матча.
-
LIVE
— трансляция, у которой и правая, и левая граница шкалы времени непрерывно изменяются с течением времени.Пользователю для перемотки доступно только «окно» между текущей левой и правой границей шкалы времени. Когда пользователь смотрит видео и находится на правой границе, как и в случае с типом
EVENT
, принято говорить, что «пользователь находится в онлайне».Например: трансляция телеканала.
Тип видео находится в поле videoType объекта состояния плеера.
Текущее время
Текущее время определяет текущую позицию на шкале времени. Текущее время можно получить с помощью поля currentTime объекта состояния плеера.
В качестве единицы измерения используются секунды.
Для типа видео LIVE
используется формат Unix TimestampVOD
и EVENT
— секунды относительно начала видео, принимаемого за время 0
.
Пример 1: для типов
VOD
иEVENT
в полеcurrentTime
может находиться значение10
. Это означает, что текущая позиция на шкале времени находится в 10 секундах от начала видео.
Пример 2: для типа
LIVE
в полеcurrentTime
может находиться значение1600000000
. Это означает, что текущая позиция на шкале времени соответствует абсолютному времениnew Date(1600000000 * 1000)
, то естьSep 13 2020 14:26:40 GMT+0200
.
Длительность
Длительность определяет разность между текущей правой и левой границами шкалы времени. Длительность видео можно получить с помощью поля duration объекта состояния плеера.
В качестве единицы измерения используются секунды.
Для типа видео LIVE
длительность всегда равна Infinity
.
UTC-время начала видео
UTC-время начала видео определяет время начала трансляции в формате UTC
В качестве единицы измерения используются секунды.
Для типа видео LIVE
— значение всегда 0
.
Для типа видео EVENT
— это всегда ненулевое значение формата Unix Timestamp
.
Пример: в поле
utcStartTime
может находиться значение1600000000
. Это означает, что видео началось в моментnew Date(1600000000 * 1000)
, то естьSep 13 2020 14:26:40 GMT+0200
.
Для типа видео VOD
— это опциональное значение. Например, значение может быть задано в случае, если VOD
был получен из EVENT
. Незаданное значение равно undefined
. Если значение задано, то оно задано в формате utcStartTime
(так же, как для типа EVENT
).
Область перемотки
Область перемотки определяет область на шкале времени, в которую пользователь может переместить текущую позицию времени. Значение можно получить с помощью поля seekableRange объекта состояния плеера.
Формат:
{
/** @type {number} левая граница области в секундах */
start,
/** @type {number} правая граница области в секундах */
end,
}
У типов видео VOD
и EVENT
значение поля start
всегда равно 0
. Значение поля end
— это правая граница шкалы времени. Причем для типа EVENT
значение поля end
непрерывно увеличивается.
У типа видео LIVE
значения полей start
и end
задаются в формате Unix Timestamp
. Значение поля end
непрерывно увеличивается.
Пример: если у трансляции типа
LIVE
в текущий момент времени в полеseekableRange
находится объект с полямиstart === 1600000000
иend === 1600001000
, значит, область перемотки для пользователя будет иметь границы1600000000
и1600001000
.
Статус воспроизведения
Значение статуса воспроизведения можно получить с помощью поля status объекта состояния плеера.
Статус воспроизведения может принимать одно из значений:
idle
— плеер ожидает задания контента для воспроизведения.init
— инициализация плеера при задании первого контента для воспроизведения.buffering
— в текущий момент плеер находится в состоянии буферизации и не может воспроизводить видео (например, из-за нехватки данных).play
— в текущий момент плеер воспроизводит видео.pause
— плеер находится на паузе.end
— воспроизведение текущего видео завершилось на правой границе шкалы времени.fatal
— воспроизведение текущего видео невозможно, у пользователя отображается экран с ошибкой. Чтобы запустить видео, пользователь может попробовать переключиться на другой контент.broken
— плеер сломан, воспроизведение видео невозможно, у пользователя отображается экран с ошибкой. Переключение на другой контент невозможно.destroyed
— был вызван методdestroy
, плеер уничтожен (destroyed) и не может больше воспроизводить видео.cancelled
— трансляция видео была отменена.preparing
— через некоторое время должна начаться трансляция видео.finished
— трансляция видео завершена.
Объект, содержащий параметры состояния плеера
Состояние плеера представляет собой объект, содержащий поля:
- source;
- status;
- error;
- currentTime;
- duration;
- videoType;
- muted;
- volume;
- utcStartTime;
- seekableRange;
- bufferedRanges.
source
Ссылка на текущий контент. Если контент не задан, то значение поля source
— undefined
.
status
Может принимать значения:
'idle'
'init'
'buffering'
'play'
'pause'
'end'
'fatal'
'broken'
'destroyed'
'cancelled'
'preparing'
'finished'
Значение по умолчанию — 'idle'
.
error
Ошибка, которая возникла в плеере.
Если в текущий момент ошибки нет, принимает значение undefined
. Если ошибка есть, значением является объект формата:
{
/** @type {string} код ошибки */
code,
/** @type {string} сообщение ошибки */
message,
}
Если поле содержит объект с ошибкой, значит, плеер в текущий момент не может начать или продолжить воспроизведение видео. Значение поля status при этом будет равно либо 'fatal'
, либо 'broken'
.
Значение по умолчанию — undefined
.
currentTime
Текущее время (позиция на шкале времени) в секундах.
Значение по умолчанию — NaN
.
duration
Длительность видео в секундах.
Значение по умолчанию — NaN
.
videoType
Может принимать значения:
undefined
'VOD'
'EVENT'
'LIVE'
Значение по умолчанию — undefined
.
muted
Статус muted
(выключенного звука) видео. Значение true
— звук выключен, значение false
— включен.
Значение по умолчанию — значение, которое было передано в конфигурации при инициализации плеера. Если при инициализации значение не было передано, значение по умолчанию — true
.
volume
Уровень громкости звука видео в диапазоне от 0
(звук не слышен) до 1
(максимальная громкость).
Значение по умолчанию — значение, которое было передано в конфигурации при инициализации плеера. Если при инициализации значение не было передано, значение по умолчанию — 1
.
utcStartTime
UTC-время начала видео в секундах, либо undefined
.
Значение по умолчанию — undefined
.
seekableRange
Значение по умолчанию — { start: NaN, end: NaN }
.
bufferedRanges
Области буферизации. Массив с элементами-объектами формата:
{
/** @type {number} начало буфера в секундах */
start,
/** @type {number} конец буфера в секундах */
end,
}
Объекты массива определяют области шкалы времени, для которых в буфере имеются данные для воспроизведения.
Значение по умолчанию — пустой массив []
.
См. также
- Interface: PlayerSdkState в справочнике API