本指南說明如何將 IMA DAI SDK 整合至簡易的影片播放器應用程式。如要查看或按照完整的整合範例操作,請從 GitHub 下載 BasicExample。
IMA DAI 總覽
如要導入 IMA DAI,需要使用四個主要的 SDK 元件,如本指南所示:
StreamDisplayContainer: 位於影片播放元素上方的容器物件,用於容納廣告 UI 元素。AdsLoader: 這個物件會要求串流,並處理串流要求回應物件觸發的事件。 您只需要例項化一個廣告載入器,即可在應用程式的整個生命週期中重複使用。StreamRequest:定義串流要求的物件。串流請求可以是隨選影片或直播。直播請求會指定素材資源金鑰,VOD 請求則會指定 CMS ID 和影片 ID。這兩種要求類型都可以選擇加入 API 金鑰 (用於存取指定串流),以及 Google Ad Manager 聯播網代碼 (用於讓 IMA SDK 按照 Google Ad Manager 設定處理廣告 ID)。StreamManager: 這個物件會處理動態廣告插播串流,以及與 DAI 後端的互動。串流管理工具也會處理追蹤連線偵測 (ping),並將串流和廣告事件轉送給發布商。
必要條件
- Android Studio
- SDK 整合範例影片播放器應用程式
下載並執行範例影片播放器應用程式
範例應用程式提供可播放 HLS 影片的影片播放器。您可以以此為起點,整合 IMA DAI SDK 的 DAI 功能。
下載影片播放器應用程式範例並解壓縮。
啟動 Android Studio,然後選取「Open an existing Android Studio project」。如果 Android Studio 已在執行中,請依序選取「File」>「New」>「Import Project」。然後選擇「
SampleVideoPlayer/build.gradle」。依序選取「Tools」>「Android」>「Sync Project with Gradle Files」,執行 Gradle 同步處理。
請依序點選「Run」>「Run 'app'」,確認播放器應用程式可在實體 Android 裝置或 Android 虛擬裝置上編譯及執行。影片串流通常需要一些時間載入,才能開始播放。
查看範例影片播放器
範例影片播放器尚未包含任何 IMA DAI SDK 整合程式碼。範例應用程式包含兩個主要部分:
samplevideoplayer/SampleVideoPlayer.java:以 ExoPlayer 為基礎的 HLS 播放器,是 IMA DAI 整合的基礎。videoplayerapp/MyActivity.java:這項活動會建立影片播放器,並將Context和media3.ui.PlayerView傳遞給播放器。
在播放器應用程式中加入 IMA DAI SDK
此外,您也必須加入 IMA DAI SDK 的參照。在 Android Studio 中,將下列內容新增至應用程式層級的 build.gradle 檔案 (位於 app/build.gradle)。IMA SDK 必須啟用程式庫脫糖功能,因此您必須在 build.gradle 檔案中設定 coreLibraryDesugaringEnabled true,並新增 'com.android.tools:desugar_jdk_libs' 做為依附元件。詳情請參閱「使用 nio 規格進行脫糖程序後,可用的 Java 11 以上版本 API」。
整合 IMA DAI SDK
在
videoplayerapp套件 (位於app/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/) 中建立名為SampleAdsWrapper的新類別,用來包裝現有的SampleVideoPlayer,並新增實作 IMA DAI 的邏輯。為此,您必須先建立AdsLoader,用於要求 DAI 串流。這個程式碼片段包含 HLS 和 DASH、直播和 VOD 串流的範例參數。如要設定播放的串流,請更新
CONTENT_TYPE變數。建立
createSampleVideoPlayerCallback()輔助方法,用於建立擴充VideoStreamPlayer.VideoStreamPlayerCallback的SampleVideoPlayerCallback介面例項。如要與 DAI 搭配運作,播放器必須將 ID3 事件傳遞至 IMA DAI SDK。在以下程式碼範例中,
callback.onUserTextReceived()方法會執行這項操作。新增
buildStreamRequest()方法,建立SteamRequest。這個方法會根據您設定CONTENT_TYPE變數的方式,在不同串流之間切換。本指南使用的預設串流是 IMA 的 VOD HLS 範例串流。您也需要
VideoStreamPlayer才能播放串流,因此請新增createVideoStreamPlayer()方法,建立實作VideoStreamPlayer的匿名類別。導入必要的事件監聽器,並新增錯誤處理支援。
請注意
AdErrorListener實作,因為如果廣告無法播放,系統會呼叫備用網址。由於內容和廣告都在同一個串流中,因此您必須做好準備,在 DAI 串流發生錯誤時呼叫備用串流。新增記錄程式碼。
修改
videoplayerapp中的MyActivity,以例項化並呼叫SampleAdsWrapper。此外,請使用輔助方法呼叫ImaSdkFactory.initialize(),建立ImaSdkSettings執行個體。新增
getImaSdkSettings()輔助方法,建立ImaSdkSettings執行個體。修改 Activity 的版面配置檔案
activity_my.xml,新增用於記錄的 UI 元素。
恭喜!您現在可以在 Android 應用程式中請求及顯示影片廣告。如要微調導入方式,請參閱書籤、快轉和 API 說明文件。
疑難排解
如果無法播放影片廣告,請嘗試下載完整的 BasicExample。如果 BasicExample 運作正常,則可能是應用程式的 IMA 整合程式碼有問題。
如果問題仍未解決,請造訪 IMA SDK 論壇。