Сообщения о воспроизведении мультимедиа,Сообщения о воспроизведении мультимедиа

Приложения-отправители Google Cast управляют воспроизведением на принимающем устройстве, отправляя сообщения в формате JSON в приложение-получатель. Точно так же получатель отправляет сообщения обратно отправителю, также в формате JSON. Сообщения могут быть командами от отправителя, которые изменяют состояние проигрывателя, ответами на эти команды от получателя или структурами данных, описывающими мультимедиа для приложения-получателя.

В соответствии с Дополнительными условиями использования Google Cast SDK для разработчиков , мультимедийное приложение Cast должно использовать эти сообщения, как определено здесь, для управления воспроизведением мультимедиа на приемнике. Это обеспечивает согласованное взаимодействие пользователей с мультимедийным приложением на разных платформах и гарантирует, что приложение Cast будет поддерживать новые и будущие варианты использования. Эти структуры также поддерживают пользовательские данные, где это необходимо, и приложение может определять свои собственные сообщения для команд, не поддерживаемых SDK.

Пространство имен для сообщений воспроизведения мультимедиа определяется как urn:x-cast:com.google.cast.media .

Примечание . Сообщения и структуры в этой спецификации имеют неявный максимальный размер, определяемый максимальным размером транспортного сообщения, ограничений для отдельных полей нет. В настоящее время максимальный размер транспортного сообщения составляет 64 КБ.

Общие структуры данных пространства имен

Надмножество структур данных, используемых всеми артефактами пространства имен мультимедиа, определяется в общем пространстве имен.

Изображение

Это описание изображения, включая небольшое количество метаданных, позволяющее приложению-отправителю выбирать изображения в зависимости от того, как оно будет их отображать.

Высота и ширина являются необязательными только для одного элемента в массиве изображений. Например, если возвращается один элемент, они необязательны; если возвращаются два элемента, один элемент должен указывать высоту и ширину, но отправитель может выбрать вариант «по умолчанию», если ему не нравится вариант, переданный с определенными параметрами.

Имя Тип Описание
URL URI URI для изображения
высота целое число необязательно Высота изображения
ширина целое число необязательно Ширина изображения

Объем

Громкость медиапотока. Используется для эффектов постепенного появления/затухания в медиапотоке. (Примечание: громкость системы изменяется с помощью API-интерфейсов отправителя.) Громкость потока нельзя использовать вместе с ползунком громкости или кнопками громкости для управления громкостью устройства. Для изменения громкости потока необходимо передать хотя бы один из следующих параметров.

Имя Тип Описание
уровень двойной необязательный Текущий уровень громкости потока в виде значения от 0,0 до 1,0, где 1,0 — максимальная громкость.
приглушенный логический необязательно Отключен ли звук на устройстве Cast, независимо от уровня громкости

Структуры данных пространства имен мультимедиа

Эти сообщения описывают состояние медиаплеера. Пространство имен urn:x-cast:com.google.cast.media .

СМИИнформация

Эта структура данных описывает медиапоток.

Имя Тип Описание
идентификатор содержимого нить Специфичный для службы идентификатор контента, загружаемого в данный момент медиаплеером. Это строка произвольной формы, специфичная для приложения. В большинстве случаев это будет URL-адрес носителя, но отправитель может передать строку, которую получатель сможет правильно интерпретировать. Максимальная длина: 1k
тип потока перечисление
(нить)

Описывает тип медиа-артефакта как один из следующих:

  • НИКТО
  • БУФЕРНЫЙ
  • ЖИТЬ
Тип содержимого нить Тип содержимого MIME воспроизводимого носителя
метаданные объект

необязательный Объект метаданных мультимедиа, один из следующих:

продолжительность двойной необязательно Продолжительность текущего воспроизводимого потока в секундах
customData объект необязательный Блок данных для конкретного приложения, определяемый либо приложением-отправителем, либо приложением-получателем.

Общие МедиаМетаданные

Описывает общий артефакт мультимедиа.

Имя Тип Описание
тип метаданных целое число 0 (единственное значение)
заглавие нить необязательный Описательный заголовок содержимого. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
подзаголовок нить необязательный описательный подзаголовок содержимого. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
картинки Изображение [] необязательный Массив URL-адресов изображения, связанного с содержимым. Начальное значение поля может быть предоставлено отправителем в сообщении загрузки . Должны быть указаны рекомендуемые размеры
Дата выхода строка (ИСО 8601) необязательная дата и время ISO 8601, когда этот контент был выпущен. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».

КиноМедиаМетаданные

Описывает медиа-артефакт фильма.

Имя Тип Описание
тип метаданных целое число 1 (единственное значение)
заглавие нить необязательный Описательный заголовок содержимого. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
подзаголовок нить необязательный описательный подзаголовок содержимого. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
студия нить необязательная студия, которая выпустила контент. Игрок может самостоятельно получить студию, используя content_id, или его может указать отправитель в сообщении о загрузке .
картинки Изображение [] необязательный Массив URL-адресов изображения, связанного с содержимым. Начальное значение поля может быть предоставлено отправителем в сообщении загрузки . Должны быть указаны рекомендуемые размеры
Дата выхода строка (ИСО 8601) необязательная дата и время ISO 8601, когда этот контент был выпущен. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».

ТВШоуМедиаМетаданные

Описывает медиа-артефакт эпизода телешоу.

Имя Тип Описание
тип метаданных целое число 2 (единственное значение)
серияНазвание нить необязательно Описательное название телесериала. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
подзаголовок нить необязательный описательный подзаголовок телевизионного эпизода. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
время года целое число необязательный номер сезона телешоу
эпизод целое число необязательный номер серии (в сезоне) телешоу
картинки Изображение [] необязательный Массив URL-адресов изображения, связанного с содержимым. Начальное значение поля может быть предоставлено отправителем в сообщении загрузки . Должны быть указаны рекомендуемые размеры
оригиналAirDate строка (ИСО 8601) необязательная дата и время ISO 8601, когда этот эпизод был выпущен. Игрок может самостоятельно получить originalAirDate, используя content_id, или его может указать отправитель в сообщении « Загрузить ».

MusicTrackMediaMetadata

Описывает медиа-артефакт музыкальной дорожки.

Имя Тип Описание
тип метаданных целое число 3 (единственное значение)
название альбома нить необязательный Альбом или коллекция, из которой взят этот трек. Плеер может самостоятельно получить имя альбома, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
заглавие нить необязательно Название трека (например, название песни). Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
альбомисполнитель нить необязательно Имя исполнителя, связанное с альбомом, содержащим этот трек. Плеер может самостоятельно получить AlbumArtist, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
художник нить необязательно Имя исполнителя, связанное с дорожкой мультимедиа. Игрок может самостоятельно получить исполнителя, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
композитор нить необязательно Имя композитора, связанного с дорожкой мультимедиа. Игрок может самостоятельно получить композитор, используя content_id, или его может указать отправитель в сообщении загрузки .
номер дорожки целое число необязательно Номер трека в альбоме
номер диска целое число необязательно Номер тома (например, диска) альбома
картинки Изображение [] необязательный Массив URL-адресов изображения, связанного с содержимым. Начальное значение поля может быть предоставлено отправителем в сообщении загрузки . Должны быть указаны рекомендуемые размеры
Дата выхода строка (ИСО 8601) необязательная дата и время ISO 8601, когда этот контент был выпущен. Игрок может самостоятельно получить дату выпуска, используя content_id, или он может быть указан отправителем в сообщении загрузки .

ФотоМедиаМетаданные

Описывает фотоартефакт.

Имя Тип Описание
тип метаданных целое число 4 (единственное значение)
заглавие нить необязательно Название фотографии. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
художник нить необязательно Имя фотографа. Игрок может самостоятельно получить исполнителя, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
расположение нить необязательно Вербальное место, где была сделана фотография; например, "Мадрид, Испания". Игрок может самостоятельно получить местоположение, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
широта двойной необязательное значение географической широты для места, где была сделана фотография. Игрок может самостоятельно получить широту, используя content_id, или ее может указать отправитель в сообщении « Загрузить ».
долгота двойной необязательно Значение географической долготы для места, где была сделана фотография. Игрок может самостоятельно получить долготу, используя content_id, или ее может указать отправитель в сообщении « Загрузить ».
ширина целое число необязательно Ширина фотографии в пикселях. Плеер может самостоятельно получить ширину, используя content_id, или она может быть указана отправителем в сообщении « Загрузить ».
высота целое число необязательно Высота фотографии в пикселях. Игрок может самостоятельно получить высоту, используя content_id, или ее может указать отправитель в сообщении « Загрузить ».
созданиеДатаВремя строка (ИСО 8601) необязательная дата и время ISO 8601, когда была сделана эта фотография. Игрок может самостоятельно получить дату создания, используя content_id, или его может указать отправитель в сообщении « Загрузить ».

МедиаСтатус

Описывает текущее состояние артефакта мультимедиа по отношению к сеансу.

Имя Тип Описание
медиасессионид целое число Уникальный идентификатор для воспроизведения этого конкретного сеанса. Этот идентификатор устанавливается приемником при загрузке и может использоваться для идентификации конкретного экземпляра воспроизведения. Например, два воспроизведения песни «Хочу, чтобы ты был здесь» в рамках одного сеанса будут иметь уникальный идентификатор mediaSessionId.
СМИ СМИИнформация необязательно (для сообщений о состоянии) Полное описание воспроизводимого контента. Возвращаться в сообщениях о состоянии только в том случае, если MediaInformation изменилась.
скорость воспроизведения плавать Указывает, прогрессирует ли время мультимедиа и с какой скоростью. Это не зависит от состояния проигрывателя, поскольку время мультимедиа может останавливаться в любом состоянии. 1,0 — обычное время, 0,5 — замедленное.
playerState перечисление (строка)

Описывает состояние игрока как одно из следующих:

  • IDLE Player еще не загружен
  • PLAYING Проигрыватель активно воспроизводит контент
  • БУФЕРИЗАЦИЯ Проигрыватель находится в режиме ВОСПРОИЗВЕДЕНИЯ, но не воспроизводит контент активно (текущее время не меняется)
  • PAUSED Проигрыватель приостановлен
idleReason перечисление (строка)

необязательный Если playerState имеет значение IDLE и известна причина, по которой он стал IDLE, предоставляется это свойство. Если проигрыватель находится в состоянии IDLE, потому что он только что запустился, это свойство не будет предоставлено; если игрок находится в любом другом состоянии, это свойство не должно предоставляться. Применяются следующие значения:

  • CANCELED Отправитель запросил остановку воспроизведения с помощью команды STOP.
  • ПРЕРЫВАНИЕ Отправитель запросил воспроизведение другого носителя с помощью команды ЗАГРУЗИТЬ
  • FINISHED Воспроизведение мультимедиа завершено
  • ERROR Носитель был прерван из-за ошибки; например, если проигрыватель не может загрузить медиафайл из-за проблем с сетью
Текущее время двойной Текущая позиция медиаплеера с начала воспроизведения контента в секундах. Если это содержимое прямой трансляции, то это поле представляет собой время в секундах от начала события, которое должно быть известно игроку.
поддерживаемые медиакоманды флаги

Флаги, описывающие, какие медиа-команды поддерживает медиаплеер:

  • 1 Пауза
  • 2 Искать
  • 4 Громкость потока
  • 8 Отключение звука в потоке
  • 16 Перейти вперед
  • 32 Перейти назад

Комбинации описываются как суммирование; например, Pause+Seek+StreamVolume+Mute == 15.

объем Объем Громкость потока
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-получателем

Команды от отправителя к получателю

Эти команды управляют медиаплеером. Все объекты customData в приведенных ниже сообщениях должны быть необязательными (т. е. приемник должен работать должным образом, если данные не передаются). Это позволит универсальным приложениям удаленного управления работать правильно.

Нагрузка

Загружает новый контент в медиаплеер.

Имя Тип Описание
идентификатор запроса целое число ID запроса, чтобы соотнести запрос и ответ
тип нить ЗАГРУЗИТЬ (только значение)
СМИ СМИИнформация Метаданные (включая contentId) носителя для загрузки
Автовоспроизведение логический

необязательный (по умолчанию true) Если указан параметр автовоспроизведения, медиаплеер начнет воспроизведение содержимого при его загрузке. Даже если автовоспроизведение не указано, реализация медиаплеера может выбрать немедленное начало воспроизведения. Если воспроизведение запущено, состояние проигрывателя в ответе должно быть установлено в BUFFERING, в противном случае оно должно быть установлено в PAUSED

Текущее время двойной необязательный Секунды с начала содержимого. Если контент является живым контентом, а позиция не указана, поток начнется с текущей позиции.
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-отправителем
Ответ Триггеры Трансляции Ошибки
Никто Изменение состояния приемника Сообщение об изменении статуса носителя Недопустимое состояние игрока
Загрузка не удалась
Загрузка отменена

Пауза

Приостанавливает воспроизведение текущего контента. Запускает уведомление о событии STATUS для всех приложений-отправителей.

Имя Тип Описание
медиасессионид целое число ID сеанса мультимедиа, который нужно приостановить
идентификатор запроса целое число ID запроса, чтобы использовать для сопоставления запроса/ответа
тип нить ПАУЗА (только значение)
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-отправителем
Ответ Триггеры Трансляции Ошибки
Никто Изменение состояния приемника Сообщение об изменении статуса носителя Недопустимое состояние игрока

Стремиться

Устанавливает текущую позицию в потоке. Запускает уведомление о событии STATUS для всех приложений-отправителей. Если предоставленная позиция находится за пределами диапазона допустимых позиций для текущего содержимого, игрок должен выбрать допустимую позицию как можно ближе к запрошенной позиции.

Имя Тип Описание
медиасессионид целое число ID медиа-сеанса, в котором задается позиция потока
идентификатор запроса целое число ID запроса, чтобы соотнести запрос и ответ
тип нить ПОИСК (только значение)
резюмесостояние перечисление (строка)

необязательный Если это не установлено, статус воспроизведения не изменится; применяются следующие значения:

  • PLAYBACK_START Принудительно запускает мультимедиа
  • PLAYBACK_PAUSE Заставляет мультимедиа приостановиться
Текущее время двойной необязательный Секунды с начала содержимого. Если контент является живым контентом, а позиция не указана, поток начнется с текущей позиции.
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-отправителем
Ответ Триггеры Трансляции Ошибки
Никто Изменение состояния приемника Сообщение об изменении статуса носителя Недопустимое состояние игрока

Останавливаться

Останавливает воспроизведение текущего контента. Запускает уведомление о событии STATUS для всех приложений-отправителей. После этой команды контент больше не будет загружаться, а mediaSessionId станет недействительным.

Имя Тип Описание
медиасессионид целое число Идентификатор медиа-сессии для контента, который нужно остановить
идентификатор запроса целое число ID запроса, чтобы соотнести запрос и ответ
тип нить СТОП (только значение)
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-отправителем
Ответ Триггеры Трансляции Ошибки
Никто Изменение состояния приемника Сообщение об изменении статуса носителя Недопустимое состояние игрока

Играть в

Начинает воспроизведение содержимого, которое было загружено вызовом load, воспроизведение продолжается с текущей временной позиции.

Имя Тип Описание
медиасессионид целое число Идентификатор медиа-сессии для воспроизводимого контента
идентификатор запроса целое число ID запроса, чтобы соотнести запрос и ответ
тип нить ИГРА (только значение)
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-отправителем
Ответ Триггеры Трансляции Ошибки
Никто Изменение состояния приемника Сообщение об изменении статуса носителя Недопустимое состояние игрока

Получить статус

Получает статус носителя.

Имя Тип Описание
медиасессионид целое число необязательный Идентификатор сеанса мультимедиа для мультимедиа, для которого должен быть возвращен статус мультимедиа. Если ничего не указано, будет предоставлен статус для всех идентификаторов мультимедийных сеансов.
идентификатор запроса целое число ID запроса, чтобы соотнести запрос и ответ
тип нить GET_STATUS (только значение)
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-отправителем
Ответ Триггеры Трансляции Ошибки
Сообщение MediaStatus отправителю, запросившему его Никто Никто Никто

SetVolume

Устанавливает громкость медиапотока. Используется для эффектов постепенного появления/затухания в медиапотоке. (Примечание: громкость получателя изменяется с помощью setVolume веб-отправителя.) Громкость потока нельзя использовать вместе с ползунком громкости или кнопками громкости для управления громкостью устройства. Изменение громкости потока не вызовет никакого пользовательского интерфейса на приемнике.

Имя Тип Описание
медиасессионид целое число Media Session ID носителя, для которого изменена громкость потока
идентификатор запроса целое число ID запроса, чтобы соотнести запрос и ответ
тип нить ОБЪЕМ (только значение)
объем Объем Громкость потока
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-отправителем
Ответ Триггеры Трансляции Ошибки
Никто Изменение состояния приемника Сообщение об изменении статуса носителя Недопустимое состояние игрока

Сообщения от получателя к отправителю

Получатель отправляет два типа сообщений:

  • Ошибки: одноадресные сообщения, отправленные при наличии ошибочного ответа на запрос отправителя.
  • Статус: Широковещательные сообщения.
    • Последствие действия, инициированного отправителем. Будет содержать requestId запроса, вызвавшего изменение.
    • Спонтанно: например, из-за изменения, инициированного приложением-получателем. RequestId будет равен 0.

Ошибка: неверное состояние игрока

Отправляется, когда запрос отправителя не может быть выполнен, поскольку проигрыватель не находится в допустимом состоянии. Например, если приложение еще не создало медиа-элемент.

Имя Тип Описание
идентификатор запроса целое число ID запроса, вызвавшего эту ошибку
тип нить INVALID_PLAYER_STATE (только значение)
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-получателем

Ошибка: Ошибка загрузки

Отправляется при сбое запроса на загрузку. Состояние игрока будет IDLE.

Имя Тип Описание
идентификатор запроса целое число ID запроса, вызвавшего эту ошибку
тип нить LOAD_FAILED (только значение)
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-получателем

Ошибка: загрузка отменена

Отправляется, когда запрос на загрузку был отменен (получен второй запрос на загрузку).

Имя Тип Описание
идентификатор запроса целое число ID запроса, вызвавшего эту ошибку
тип нить LOAD_CANCELED (только значение)
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-получателем

Ошибка: неверный запрос

Отправляется, когда запрос недействителен (например, неизвестный тип запроса).

Имя Тип Описание
идентификатор запроса целое число ID запроса, вызвавшего эту ошибку
тип нить INVALID_REQUEST (только значение)
причина Перечисление (строка)

Ценности:

  • INVALID_COMMAND Команда не поддерживается
  • DUPLICATE_REQUESTID Идентификатор запроса не уникален (получатель обрабатывает запрос с тем же идентификатором).
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-получателем

Статус СМИ

Отправляется после изменения состояния или после запроса состояния носителя. Будут отправлены только измененные или запрошенные объекты MediaStatus.

Имя Тип Описание
идентификатор запроса целое число Идентификатор, используемый для сопоставления этого ответа о состоянии с запросом, который его инициировал, или 0, если сообщение о состоянии является спонтанным (не инициировано запросом отправителя). Приложения-отправители будут генерировать уникальные идентификаторы запросов, выбирая случайное число и постоянно увеличивая его (они не будут использовать 0).
тип нить MEDIA_STATUS (только значение)
статус МедиаСтатус [] Массив объектов Media Status. ПРИМЕЧАНИЕ: элемент мультимедиа в MediaStatus будет возвращен только в том случае, если он изменился.
customData объект необязательный Блок данных для конкретного приложения, определяемый приложением-получателем
,

Приложения-отправители Google Cast управляют воспроизведением на принимающем устройстве, отправляя сообщения в формате JSON в приложение-получатель. Точно так же получатель отправляет сообщения обратно отправителю, также в формате JSON. Сообщения могут быть командами от отправителя, которые изменяют состояние проигрывателя, ответами на эти команды от получателя или структурами данных, описывающими мультимедиа для приложения-получателя.

В соответствии с Дополнительными условиями использования Google Cast SDK для разработчиков , мультимедийное приложение Cast должно использовать эти сообщения, как определено здесь, для управления воспроизведением мультимедиа на приемнике. Это обеспечивает согласованное взаимодействие пользователей с мультимедийным приложением на разных платформах и гарантирует, что приложение Cast будет поддерживать новые и будущие варианты использования. Эти структуры также поддерживают пользовательские данные, где это необходимо, и приложение может определять свои собственные сообщения для команд, не поддерживаемых SDK.

Пространство имен для сообщений воспроизведения мультимедиа определяется как urn:x-cast:com.google.cast.media .

Примечание . Сообщения и структуры в этой спецификации имеют неявный максимальный размер, определяемый максимальным размером транспортного сообщения, ограничений для отдельных полей нет. В настоящее время максимальный размер транспортного сообщения составляет 64 КБ.

Общие структуры данных пространства имен

Надмножество структур данных, используемых всеми артефактами пространства имен мультимедиа, определяется в общем пространстве имен.

Изображение

Это описание изображения, включая небольшое количество метаданных, позволяющее приложению-отправителю выбирать изображения в зависимости от того, как оно будет их отображать.

Высота и ширина являются необязательными только для одного элемента в массиве изображений. Например, если возвращается один элемент, они необязательны; если возвращаются два элемента, один элемент должен указывать высоту и ширину, но отправитель может выбрать вариант «по умолчанию», если ему не нравится вариант, переданный с определенными параметрами.

Имя Тип Описание
URL URI URI для изображения
высота целое число необязательно Высота изображения
ширина целое число необязательно Ширина изображения

Объем

Громкость медиапотока. Используется для эффектов постепенного появления/затухания в медиапотоке. (Примечание: громкость системы изменяется с помощью API-интерфейсов отправителя.) Громкость потока нельзя использовать вместе с ползунком громкости или кнопками громкости для управления громкостью устройства. Для изменения громкости потока необходимо передать хотя бы один из следующих параметров.

Имя Тип Описание
уровень двойной необязательный Текущий уровень громкости потока в виде значения от 0,0 до 1,0, где 1,0 — максимальная громкость.
приглушенный логический необязательно Отключен ли звук на устройстве Cast, независимо от уровня громкости

Структуры данных пространства имен мультимедиа

Эти сообщения описывают состояние медиаплеера. Пространство имен urn:x-cast:com.google.cast.media .

СМИИнформация

Эта структура данных описывает медиапоток.

Имя Тип Описание
идентификатор содержимого нить Специфичный для службы идентификатор контента, загружаемого в данный момент медиаплеером. Это строка произвольной формы, специфичная для приложения. В большинстве случаев это будет URL-адрес носителя, но отправитель может передать строку, которую получатель сможет правильно интерпретировать. Максимальная длина: 1k
тип потока перечисление
(нить)

Описывает тип медиа-артефакта как один из следующих:

  • НИКТО
  • БУФЕРНЫЙ
  • ЖИТЬ
Тип содержимого нить Тип содержимого MIME воспроизводимого носителя
метаданные объект

необязательный Объект метаданных мультимедиа, один из следующих:

продолжительность двойной необязательно Продолжительность текущего воспроизводимого потока в секундах
customData объект необязательный Блок данных для конкретного приложения, определяемый либо приложением-отправителем, либо приложением-получателем.

Общие МедиаМетаданные

Описывает общий артефакт мультимедиа.

Имя Тип Описание
тип метаданных целое число 0 (единственное значение)
заглавие нить необязательный Описательный заголовок содержимого. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
подзаголовок нить необязательный описательный подзаголовок содержимого. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
картинки Изображение [] необязательный Массив URL-адресов изображения, связанного с содержимым. Начальное значение поля может быть предоставлено отправителем в сообщении загрузки . Должны быть указаны рекомендуемые размеры
Дата выхода строка (ИСО 8601) необязательная дата и время ISO 8601, когда этот контент был выпущен. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».

КиноМедиаМетаданные

Описывает медиа-артефакт фильма.

Имя Тип Описание
тип метаданных целое число 1 (единственное значение)
заглавие нить необязательный Описательный заголовок содержимого. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
подзаголовок нить необязательный описательный подзаголовок содержимого. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
студия нить необязательная студия, которая выпустила контент. Игрок может самостоятельно получить студию, используя content_id, или его может указать отправитель в сообщении о загрузке .
картинки Изображение [] необязательный Массив URL-адресов изображения, связанного с содержимым. Начальное значение поля может быть предоставлено отправителем в сообщении загрузки . Должны быть указаны рекомендуемые размеры
Дата выхода строка (ИСО 8601) необязательная дата и время ISO 8601, когда этот контент был выпущен. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».

ТВШоуМедиаМетаданные

Описывает медиа-артефакт эпизода телешоу.

Имя Тип Описание
тип метаданных целое число 2 (единственное значение)
серияНазвание нить необязательно Описательное название телесериала. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
подзаголовок нить необязательный описательный подзаголовок телевизионного эпизода. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
время года целое число необязательный номер сезона телешоу
эпизод целое число необязательный номер серии (в сезоне) телешоу
картинки Изображение [] необязательный Массив URL-адресов изображения, связанного с содержимым. Начальное значение поля может быть предоставлено отправителем в сообщении загрузки . Должны быть указаны рекомендуемые размеры
оригиналAirDate строка (ИСО 8601) необязательная дата и время ISO 8601, когда этот эпизод был выпущен. Игрок может самостоятельно получить originalAirDate, используя content_id, или его может указать отправитель в сообщении « Загрузить ».

MusicTrackMediaMetadata

Описывает медиа-артефакт музыкальной дорожки.

Имя Тип Описание
тип метаданных целое число 3 (единственное значение)
название альбома нить необязательный Альбом или коллекция, из которой взят этот трек. Плеер может самостоятельно получить имя альбома, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
заглавие нить необязательно Название трека (например, название песни). Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
альбомисполнитель нить необязательно Имя исполнителя, связанное с альбомом, содержащим этот трек. Плеер может самостоятельно получить AlbumArtist, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
художник нить необязательно Имя исполнителя, связанное с дорожкой мультимедиа. Игрок может самостоятельно получить исполнителя, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
композитор нить необязательно Имя композитора, связанного с дорожкой мультимедиа. Игрок может самостоятельно получить композитор, используя content_id, или его может указать отправитель в сообщении загрузки .
номер дорожки целое число необязательно Номер трека в альбоме
номер диска целое число необязательно Номер тома (например, диска) альбома
картинки Изображение [] необязательный Массив URL-адресов изображения, связанного с содержимым. Начальное значение поля может быть предоставлено отправителем в сообщении загрузки . Должны быть указаны рекомендуемые размеры
Дата выхода строка (ИСО 8601) необязательная дата и время ISO 8601, когда этот контент был выпущен. Игрок может самостоятельно получить дату выпуска, используя content_id, или он может быть указан отправителем в сообщении загрузки .

ФотоМедиаМетаданные

Описывает фотоартефакт.

Имя Тип Описание
тип метаданных целое число 4 (единственное значение)
заглавие нить необязательно Название фотографии. Игрок может самостоятельно получить заголовок, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
художник нить необязательно Имя фотографа. Игрок может самостоятельно получить исполнителя, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
расположение нить необязательно Вербальное место, где была сделана фотография; например, "Мадрид, Испания". Игрок может самостоятельно получить местоположение, используя content_id, или его может указать отправитель в сообщении « Загрузить ».
широта двойной необязательное значение географической широты для места, где была сделана фотография. Игрок может самостоятельно получить широту, используя content_id, или ее может указать отправитель в сообщении « Загрузить ».
долгота двойной необязательно Значение географической долготы для места, где была сделана фотография. Игрок может самостоятельно получить долготу, используя content_id, или ее может указать отправитель в сообщении « Загрузить ».
ширина целое число необязательно Ширина фотографии в пикселях. Плеер может самостоятельно получить ширину, используя content_id, или она может быть указана отправителем в сообщении « Загрузить ».
высота целое число необязательно Высота фотографии в пикселях. Игрок может самостоятельно получить высоту, используя content_id, или ее может указать отправитель в сообщении « Загрузить ».
созданиеДатаВремя строка (ИСО 8601) необязательная дата и время ISO 8601, когда была сделана эта фотография. Игрок может самостоятельно получить дату создания, используя content_id, или его может указать отправитель в сообщении « Загрузить ».

МедиаСтатус

Описывает текущее состояние артефакта мультимедиа по отношению к сеансу.

Имя Тип Описание
медиасессионид целое число Уникальный идентификатор для воспроизведения этого конкретного сеанса. Этот идентификатор устанавливается приемником при загрузке и может использоваться для идентификации конкретного экземпляра воспроизведения. Например, два воспроизведения песни «Хочу, чтобы ты был здесь» в рамках одного сеанса будут иметь уникальный идентификатор mediaSessionId.
СМИ СМИИнформация необязательно (для сообщений о состоянии) Полное описание воспроизводимого контента. Возвращаться в сообщениях о состоянии только в том случае, если MediaInformation изменилась.
скорость воспроизведения плавать Указывает, прогрессирует ли время мультимедиа и с какой скоростью. Это не зависит от состояния проигрывателя, поскольку время мультимедиа может останавливаться в любом состоянии. 1,0 — обычное время, 0,5 — замедленное.
playerState перечисление (строка)

Описывает состояние игрока как одно из следующих:

  • IDLE Player еще не загружен
  • PLAYING Проигрыватель активно воспроизводит контент
  • БУФЕРИЗАЦИЯ Проигрыватель находится в режиме ВОСПРОИЗВЕДЕНИЯ, но не воспроизводит контент активно (текущее время не меняется)
  • PAUSED Проигрыватель приостановлен
idleReason перечисление (строка)

необязательный Если playerState имеет значение IDLE и известна причина, по которой он стал IDLE, предоставляется это свойство. Если проигрыватель находится в состоянии IDLE, потому что он только что запустился, это свойство не будет предоставлено; если игрок находится в любом другом состоянии, это свойство не должно предоставляться. Применяются следующие значения:

  • CANCELED Отправитель запросил остановку воспроизведения с помощью команды STOP.
  • ПРЕРЫВАНИЕ Отправитель запросил воспроизведение другого носителя с помощью команды ЗАГРУЗИТЬ
  • FINISHED Воспроизведение мультимедиа завершено
  • ERROR Носитель был прерван из-за ошибки; например, если проигрыватель не может загрузить медиафайл из-за проблем с сетью
Текущее время двойной Текущая позиция медиаплеера с начала воспроизведения контента в секундах. Если это содержимое прямой трансляции, то это поле представляет собой время в секундах от начала события, которое должно быть известно игроку.
поддерживаемые медиакоманды флаги

Флаги, описывающие, какие медиа-команды поддерживает медиаплеер:

  • 1 Пауза
  • 2 Искать
  • 4 Громкость потока
  • 8 Отключение звука в потоке
  • 16 Перейти вперед
  • 32 Перейти назад

Комбинации описываются как суммирование; например, Pause+Seek+StreamVolume+Mute == 15.

объем Объем Громкость потока
customData объект optional Application-specific blob of data defined by the receiver application

Commands from sender to receiver

These commands control the media player. All customData objects in the messages below must be optional (ie the receiver should degrade properly if data is not passed). This will allow generic remote control apps to work properly.

Load

Loads new content into the media player.

Name Тип Описание
requestId integer ID of the request, to correlate request and response
type нить LOAD (only value)
media MediaInformation Metadata (including contentId) of the media to load
autoplay логический

optional (default is true) If the autoplay parameter is specified, the media player will begin playing the content when it is loaded. Even if autoplay is not specified, media player implementation may choose to begin playback immediately. If playback is started, the player state in the response should be set to BUFFERING, otherwise it should be set to PAUSED

currentTime double optional Seconds since beginning of content. If the content is live content, and position is not specifed, the stream will start at the live position
customData object optional Application-specific blob of data defined by the sender application
Ответ Triggers Broadcasts Errors
None Receiver state change A Media Status Change message Invalid Player State
Load Failed
Load Cancelled

Pause

Pauses playback of the current content. Triggers a STATUS event notification to all sender applications.

Name Тип Описание
mediaSessionId integer ID of the media session to be paused
requestId integer ID of the request, to use to correlate request/response
type нить PAUSE (only value)
customData object optional Application-specific blob of data defined by the sender application
Ответ Triggers Broadcasts Errors
None Receiver state change A Media Status Change message Invalid Player State

Seek

Sets the current position in the stream. Triggers a STATUS event notification to all sender applications. If the position provided is outside the range of valid positions for the current content, then the player should pick a valid position as close to the requested position as possible.

Name Тип Описание
mediaSessionId integer ID of the media session where the position of the stream is set
requestId integer ID of the request, to correlate request and response
type нить SEEK (only value)
resumeState enum (string)

optional If this is not set, playback status will not change; the following values apply:

  • PLAYBACK_START Forces media to start
  • PLAYBACK_PAUSE Forces media to pause
currentTime double optional Seconds since beginning of content. If the content is live content, and position is not specifed, the stream will start at the live position
customData object optional Application-specific blob of data defined by the sender application
Ответ Triggers Broadcasts Errors
None Receiver state change A Media Status Change message Invalid Player State

Stop

Stops playback of the current content. Triggers a STATUS event notification to all sender applications. After this command the content will no longer be loaded and the mediaSessionId is invalidated.

Name Тип Описание
mediaSessionId integer ID of the media session for the content to be stopped
requestId integer ID of the request, to correlate request and response
type нить STOP (only value)
customData object optional Application-specific blob of data defined by the sender application
Ответ Triggers Broadcasts Errors
None Receiver state change A Media Status Change message Invalid Player State

Play

Begins playback of the content that was loaded with the load call, playback is continued from the current time position.

Name Тип Описание
mediaSessionId integer ID of the media session for the content to be played
requestId integer ID of the request, to correlate request and response
type нить PLAY (only value)
customData object optional Application-specific blob of data defined by the sender application
Ответ Triggers Broadcasts Errors
None Receiver state change A Media Status Change message Invalid Player State

Get Status

Retrieves the media status.

Name Тип Описание
mediaSessionId integer optional Media session ID of the media for which the media status should be returned. If none is provided, then the status for all media session IDs will be provided.
requestId integer ID of the request, to correlate request and response
type нить GET_STATUS (only value)
customData object optional Application-specific blob of data defined by the sender application
Ответ Triggers Broadcasts Errors
MediaStatus message to the sender that requested it None None None

SetVolume

Sets the media stream volume. Used for fade-in/fade-out effects on the media stream. (Note: receiver volume is changed using the Web sender setVolume .) Stream volume must not be used in conjunction with the volume slider or volume buttons to control the device volume. A change in stream volume will not trigger any UI on the receiver.

Name Тип Описание
mediaSessionId integer Media Session ID of the media for which the stream volume is changed
requestId integer ID of the request, to correlate request and response
type нить VOLUME (only value)
volume Volume Stream volume
customData object optional Application-specific blob of data defined by the sender application
Ответ Triggers Broadcasts Errors
None Receiver state change A Media Status Change message Invalid Player State

Messages from receiver to sender

The receiver sends two types of messages:

  • Errors: Unicast messages sent when there is an error response to a sender request.
  • Status: Broadcast messages.
    • Consequence of a sender-initiated action. Will contain the requestId of the request that caused the change.
    • Spontaneous: For example, due to a change triggered by the receiver application. The RequestId will be 0.

Error: Invalid Player State

Sent when the request by the sender can not be fulfilled because the player is not in a valid state. For example, if the application has not created a media element yet.

Name Тип Описание
requestId integer ID of the request that generated this error
type нить INVALID_PLAYER_STATE (only value)
customData object optional Application-specific blob of data defined by the receiver application

Error: Load Failed

Sent when the load request failed. The player state will be IDLE.

Name Тип Описание
requestId integer ID of the request that generated this error
type нить LOAD_FAILED (only value)
customData object optional Application-specific blob of data defined by the receiver application

Error: Load Cancelled

Sent when the load request was cancelled (a second load request was received).

Name Тип Описание
requestId integer ID of the request that generated this error
type нить LOAD_CANCELLED (only value)
customData object optional Application-specific blob of data defined by the receiver application

Error: Invalid Request

Sent when the request is invalid (an unknown request type, for example).

Name Тип Описание
requestId integer ID of the request that generated this error
type нить INVALID_REQUEST (only value)
reason Enum (string)

Values:

  • INVALID_COMMAND The command is not supported
  • DUPLICATE_REQUESTID The request ID is not unique (the receiver is processing a request with the same ID)
customData object optional Application-specific blob of data defined by the receiver application

Media status

Sent after a state change or after a media status request. Only the MediaStatus objects that changed or were requested will be sent.

Name Тип Описание
requestId integer ID used to correlate this status response with the request that originated it or 0 if the status message is spontaneous (not triggered by a sender request). Sender applications will generate unique request IDs by selecting a random number and continuously increasing it (they will not use 0).
type нить MEDIA_STATUS (only value)
status MediaStatus [] Array of Media Status objects. NOTE: the media element in MediaStatus will only be returned if it has changed.
customData object optional Application-specific blob of data defined by the receiver application