播放使用 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 會為每個廣告插播插入從廣告代碼擷取的廣告。廣告插播時間點會在資訊清單中以廣告標記表示。廣告標記是由直播編碼器插入。
如果使用的是自有直播,則需要插入廣告標記。如要進一步瞭解支援的 HLS 和 DASH 廣告標記,請參閱廣告標記說明文件。
如果您是使用 Google Cloud Livestream API 建立直播,請插入廣告插播頻道事件。
廣告插播後立即播放廣告。
清除所用資源
您已成功使用 Google Cloud Video Stitcher API 代管直播,並使用 Android 版 IMA DAI SDK 提出要求,因此請務必清除所有放送資源。
請按照直播清理指南移除所有不必要的資源和素材資源。