Написание приложений-отправителей для CAF DAI SDK

В отличие от предыдущих интеграций между Chromecast и DAI, SDK CAF DAI в значительной степени ориентирован на соблюдение стандартов и ожиданий, установленных Cast Application Framework . Таким образом, нет необходимости жестко настраивать ваши приложения-отправители для управления двунаправленной связью между IMA и приложением-отправителем. Эти сообщения теперь управляются с помощью встроенной функции CAF Ad Breaks , а не требуют пользовательских систем сообщений для связи между приложением-отправителем и получателем.

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

Все, что требуется сейчас, помимо поддержки рекламных пауз CAF, — это включить данные потока DAI в объект CAF MediaInfo , который отправляется от отправителя к получателю. Вы можете отправлять эти данные разными способами, например, вы можете жестко запрограммировать contentSourceID на своем приемнике и отправлять только videoID с объектом MediaInfo, или вы можете отправить произвольный идентификатор приемнику, а оттуда запросить онлайн база данных для фактических параметров DAI.

Однако для простоты во всех наших примерах предполагается, что вы следуете этой простой структуре и соглашению об именах для ваших объектов MediaInfo:

идентификатор содержимого Уникальный идентификатор для этого элемента мультимедиа
URL-адрес контента URL-адрес резервного потока для загрузки в случае сбоя DAI StreamRequest по какой-либо причине.
тип потока Для прямых трансляций это значение должно быть установлено на «LIVE». Для потоков VOD это значение должно быть установлено на «БУФЕРИРОВАНО».
customData активКлюч Только прямые трансляции. Идентифицирует прямую трансляцию для загрузки
ContentSourceId Только видео по запросу. Идентифицирует канал мультимедиа, который содержит запрошенный поток.
видеоидентификатор Только видео по запросу. Идентифицирует запрошенный поток в указанном канале мультимедиа.
АпиКей Необязательный ключ API, который может потребоваться для получения URL-адреса потока из SDK IMA DAI.
отправительCanSkip Логическое значение, указывающее получателю, есть ли на отправляющем устройстве возможность отображать кнопку пропуска, что обеспечивает поддержку объявлений с возможностью пропуска.

Пример прямого эфира:

{
  "media": {
    "contentId": "bbb",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
    "streamType": "LIVE",
    "customData": {
      "assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}

Пример VOD-потока:

{
  "media": {
    "contentId": "tos",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
    "streamType": "BUFFERED",
    "customData": {
      "contentSourceId": "2528370",
      "videoId": "tears-of-steel",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}