在 Android 上使用 IMA DAI SDK

播放使用 Google Cloud Video Stitcher API 註冊的直播

本指南說明如何使用 Android 版 IMA DAI SDK,針對透過 Google Cloud Video Stitcher API 註冊的活動,要求及播放直播,以及如何在播放期間插入廣告插播。

本指南將 IMA DAI 的入門指南中的基本範例做進一步說明。

如要瞭解如何整合其他平台,或使用 IMA 用戶端 SDK,請參閱「互動式媒體廣告 SDK」。

如要查看或瞭解完整的整合範例,請下載 Cloud 影片併接工具範例

設定 Google Cloud 專案

輸入下列變數,以便在 IMA SDK 中使用:

位置
建立即時設定的 Google Cloud 區域LOCATION
專案編號
使用 Video Stitcher API 的 Google Cloud 專案編號: PROJECT_NUMBER
OAuth 權杖

服務帳戶的短期 OAuth 權杖,具有 Video Stitcher 使用者角色:

OAUTH_TOKEN

進一步瞭解如何為服務帳戶建立短期憑證。只要 OAuth 權杖未過期,就可以在多個要求中重複使用。

聯播網代碼

用於要求廣告的 Ad Manager 聯播網代碼: NETWORK_CODE

直播設定 ID
建立直播活動時指定的直播設定 ID: LIVE_CONFIG_ID
自訂素材資源金鑰
使用 Video Stitcher API 建立直播活動設定時,Ad Manager 會產生自訂素材資源鍵: CUSTOM_ASSET_KEY

下載基本範例

下載並執行 IMA Android DAI 基本範例。點選影片播放器上的「播放」按鈕,開始播放短片「Tears of Steel」,每 30 秒就會插播廣告。

要求直播

如要將樣本串流取代為直播,您必須使用 ImaSdkFactory.createVideoStitcherLiveStreamRequest() 與 Google Ad Manager 建立廣告工作階段。您可以使用 Google Ad Manager UI 找出產生的 DAI 工作階段,以便監控及偵錯。

在現有範例中,有用於要求 VOD 串流或直播的條件式陳述式。如要讓其與 Google Cloud Video Stitcher API 搭配運作,您需要新增路徑,以便傳回使用 ImaSdkFactory.createVideoStitcherLiveStreamRequest() 建立的 StreamRequest

範例如下:

videoplayerapp/SampleAdsWrapper.java

private sdkFactory ImaSdkFactory;
...
private enum ContentType {
  LIVE_HLS,
  LIVE_DASH,
// Add a Live HLS Google Cloud type.
  LIVE_HLS_GOOGLE_CLOUD,
  VOD_HLS,
  VOD_DASH,
}

// Set CONTENT_TYPE to the associated enum for the
// stream type you would like to test.
private static final ContentType CONTENT_TYPE =
    ContentType.LIVE_HLS_GOOGLE_CLOUD;
...

@Nullable
  private StreamRequest buildStreamRequest() {
    StreamRequest request;
    switch (CONTENT_TYPE) {
      ...
      case LIVE_HLS_GOOGLE_CLOUD:
        // Live HLS stream generated by the Google Cloud Video Stitcher API.
        request = sdkFactory.createVideoStitcherLiveStreamRequest(
          "NETWORK_CODE",
          "CUSTOM_ASSET_KEY",
          "LIVE_CONFIG_ID",
          "LOCATION",
          "PROJECT_NUMBER",
          "OAUTH_TOKEN"
        );
        request.setFormat(StreamFormat.HLS);
        return request;
    }
    // Content type not selected.
    return null;
  }
...

重新載入應用程式,要求並播放自訂直播。

(選用) 新增串流工作階段選項

使用 StreamRequest.setVideoStitcherSessionOptions() 新增工作階段選項,藉此取代預設的 Cloud Video Stitcher API 設定,自訂串流要求。如果您提供未知的選項,Cloud Video Stitcher API 會回應 HTTP 400 錯誤。如需協助,請參閱疑難排解指南

舉例來說,您可以使用以下程式碼片段覆寫資訊清單選項,要求兩個串流資訊清單,並以最低比特率至最高比特率的順序排列呈現內容。

public void requestAndPlayAds() {
  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  StreamRequest streamRequest = buildStreamRequest();

  // The following session options are examples. Use session options
  // that are compatible with your video stream.
  Map<String, Object> sessionOptions = Map.of(
    "manifestOptions", Map.of(
      "bitrateOrder", "ascending"
    )
  );

  /* sessionOptions JSON structure.
   * {
   *  "manifestOptions": {
   *    "bitrateOrder": "ascending"
   *  }
   * };
   */

  streamRequest.setVideoStitcherSessionOptions(sessionOptions);
  adsLoader.requestStream(streamRequest);
}

插入廣告插播

Google Cloud Video Stitcher API 會為每個廣告插播插入從廣告代碼擷取的廣告。廣告插播時間點會在資訊清單中以廣告標記表示。廣告標記是由直播編碼器插入。

廣告插播後立即播放廣告。

清除所用資源

您已成功使用 Google Cloud Video Stitcher API 代管直播,並使用 Android 版 IMA DAI SDK 提出要求,因此請務必清除所有放送資源。

請按照直播清理指南移除所有不必要的資源和素材資源。