Состояние плеера
Вы можете получать информацию о состоянии видеоплеера и его параметров через специальный объект, содержащий поля со значениями состояний.
Параметры видеоплеера
Типы видео в плеере
Видеоплеер поддерживает воспроизведение трех типов видео:
-
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,
}
Объекты массива определяют области шкалы времени, для которых в буфере имеются данные для воспроизведения.
Значение по умолчанию — пустой массив [].
isFullscreen
Статус полноразмерного режима. Значение true — полноразмерный режим включен, значение false — выключен.
Значение по умолчанию — false.
См. также
- Interface: PlayerSdkState в справочнике API