為 CAF DAI SDK 編寫傳送者應用程式

有別於之前的 Chromecast 與 DAI 整合,CAF DAI SDK 著重於維持 Cast 應用程式架構所設定的標準和預期目標。因此,您不需要大幅自訂傳送者應用程式,即可管理 IMA 和傳送端應用程式之間的雙向通訊。這些通訊目前是透過整合式 CAF 廣告插播功能來管理,不需要自訂訊息系統即可在傳送端應用程式和接收端之間進行通訊。

視您的寄件者而定,您可能仍需要將一些有限的程式碼加到寄件者,以完整啟用 CAF 廣告插播支援,例如為網路寄件者新增可略過廣告的支援功能

除了對 CAF 廣告插播的支援以外,現在還有一個步驟,就是在傳送給接收端的 CAF MediaInfo 物件中加入 DAI 串流資料。您可以選擇透過多種不同的方式傳送這類資料。舉例來說,您可以在接收器上以硬式編碼編寫 contentSourceID,並只使用 MediaInfo 物件傳送影片 ID,或將任意 ID 傳送給接收器,再透過查詢線上資料庫取得實際的 DAI 參數。

不過,為求簡單,所有範例都會假設您採用 MediaInfo 物件的簡單結構和命名慣例:

contentId 這個媒體項目的專屬 ID
contentUrl 如果 DAI StreamRequest 因任何原因失敗,要載入的備用串流網址
streamType 如果是直播,這個值應設為「直播」。如果是 VOD 串流,這個值應設為「BUFFERED」
customData assetKey 僅適用於直播。找出要載入的直播
contentSourceId 僅限隨選影片串流。指出包含所請求串流的媒體動態饋給。
videoId 僅限隨選影片串流。在指定的媒體動態饋給中識別請求的串流。
ApiKey 必須提供的選用 API 金鑰,才能從 IMA DAI SDK 擷取串流網址。
senderCanSkip 這個布林值可讓接收者瞭解傳送裝置是否能夠顯示略過按鈕,支援可略過廣告。

直播範例:

{
  "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": "2548831",
      "videoId": "tears-of-steel",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}