在原生開發套件中使用即時 SSAI

在本主題中,您將學習如何使用 Brightcove 原生 SDK 播放伺服器端廣告插入 (SSAI) 啟用的即時串流。

概覽

服務器端廣告插入(SSAI),您可以將廣告拼接到視頻內容流中,以提供類似電視的觀看體驗。要使用Native SDK播放實時流,您需要在視頻請求中傳遞播放令牌。

居住SSAI允許您:

  • 使用從編碼器發送的提示點插入廣告或使用Live API
  • 內嵌「石板」資產以填滿任何未使用的廣告時間
  • 避免將廣告拼接到伺服器端直播中的廣告攔截器

步驟

播放直播流SSAI, 按著這些次序:

  1. 創建實時廣告配置使用 Video Cloud Studio
  2. 選用性:創建板岩資產 , 和/或插入提示點和廣告信標
  3. 創建現場活動
  4. 獲取播放令牌
  5. 建置您的應用程式:

  6. 要求廣告休息

創建現場活動

默認情況下,您的實時流將使用Brightcove CDN。如果願意,可以使用自己選擇的CDN(BYO CDN或“自帶帶寬”)。要使用您自己的 CDN,請在本節和獲取播放令牌部分。

若要進行現場活動,請按照下列步驟操作:

  1. 請參閱在直播模塊中實現服務端廣告文檔。
  2. 展開 高級選項 部分。
  3. 選擇 Enable Server-Side Ad Insertion (SSAI) ,然後選擇 Fill Slate

    啟用 SSAI
    啟用 SSAI
  4. 選用性:要使用您自己的CDN,請包括以下其他步驟:

    • 高級選項 部分,選擇 添加多 CDN 配置 選項。

      多重 CDN 設定
      多重 CDN 設定
    • 輸入您自己的CDN的標籤和URL。有關詳細信息,請參閱 內容交付選項 文檔。

      添加標籤和網址
      添加標籤和網址
  5. 完成直播活動配置後,點擊 創建活動

獲取播放令牌

當您在直播中啟用 SSAI 時,播放器嵌入代碼將包含adConfigId範圍。該值是播放令牌,在您的應用中請求視頻內容時將使用該令牌。

要獲取播放令牌,請按照下列步驟操作:

  1. 在 Video Cloud Studio 中,返回 直播 模塊。
  2. 在左側導航中,選擇 Publish and Embed
  3. 實時播放器選項 部分,展開 選擇廣告配置 選項並選擇您在上一步中創建的實時廣告配置。

    選擇廣告配置
    選擇廣告配置
  4. 複製標準嵌入代碼到你的剪貼板。

    內嵌程式碼
    內嵌程式碼
  5. 從嵌入代碼中,複製VideoId參數值。您將在後面的步驟中使用該值。它看起來應該類似於:

    1700044540369289748
  6. 從嵌入代碼中,複製adConfigId參數值。您將在後面的步驟中使用這些值。這adConfigId value 是從您的視頻雲庫請求內容時傳遞的播放令牌。它看起來應該類似於:

    live.t0vbpNIjTPW6IZ29QsyuWrmgjvQjEWe3u_wPmaMqnhAmE05DCF7aAa-6fDIkvryJctH1rADJnfXYANy7tDg4agQFx23WIvsXMmAjz1BiNl-S3rFZ9tRdzRWdo1E4FTLkET6XcNuNZ2acTnzmow
  7. 您還將需要帳戶ID和策略密鑰。

安卓實作

要播放直播流,您將包括adConfigId參數和您的視頻請求的播放令牌的值。

請依照下列步驟建置您的應用程式:

  1. 使用基本 SSAI 示例應用程序作為代碼的起點。
  2. 在裡面資源/值/strings.xml文件,將以下內容替換為您自己的值
  3. 在裡面主活動.java文件,替換ad_config_id您從 Live 模塊中復制的播放令牌(實時 URL)的值獲取播放令牌上面的部分。

    private final String AD_CONFIG_ID_QUERY_PARAM_VALUE = "live.t0vbpNIjTPW6IZ29QsyuWrmgjvQjEWe3u_wPmaMqnhAmE05DCF7aAa-6fDIkvryJctH1rADJnfXYANy7tDg4agQFx23WIvsXMmAjz1BiNl-S3rFZ9tRdzRWdo1E4FTLkET6XcNuNZ2acTnzmow";
  4. ad_config_id將您的播放令牌值作為查詢參數添加到 HTTP 請求中。

    HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder()
      .addQueryParameter(AD_CONFIG_ID_QUERY_PARAM_KEY, AD_CONFIG_ID_QUERY_PARAM_VALUE)
      .build();
    
  5. 使用即時串流視訊 ID 和更新的 HTTP 要求,對播放 API 進行目錄呼叫。

    catalog.findVideoByID(getString(R.string.video_id), httpRequestConfig, new VideoListener() {
       @Override
       public void onVideo(Video video) {
           plugin.processVideo(video);
       }
     });
    
  6. 您的應用程式已準備好播放即時串流。

    有關通過適用於 Android 的本機 SDK 使用為 SSAI 啟用的實時流的更多詳細信息,請參閱SSAI 插件在 6.9.0 中的變化博客文章。

iOS 實作

要播放直播流,您將包括adConfigId參數和您的視頻請求的播放令牌的值。

請依照下列步驟建置您的應用程式:

  1. 使用基本 SSAI 示例應用程序作為代碼的起點。
  2. 在裡面視圖控制器.swift文件,將以下內容替換為您自己的值
  3. 在裡面視圖控制器.swift文件,替換AdConfigId您從 Live 模塊中復制的播放令牌(實時 URL)的值獲取播放令牌上面的部分。

    static let AdConfigId = "live.t0vbpNIjTPW6IZ29QsyuWrmgjvQjEWe3u_wPmaMqnhAmE05DCF7aAa-6fDIkvryJctH1rADJnfXYANy7tDg4agQFx23WIvsXMmAjz1BiNl-S3rFZ9tRdzRWdo1E4FTLkET6XcNuNZ2acTnzmow";
  4. AdConfigId將您的播放令牌值作為查詢參數添加到 HTTP 請求中。

    let queryParameters = [kBCOVPlaybackServiceParamaterKeyAdConfigId: Constants.AdConfigId]
    
  5. 使用即時串流視訊 ID 和更新的 HTTP 要求,對播放 API 進行目錄呼叫。

    playbackService.findVideo(withVideoID: Constants.VideoId, parameters: queryParameters) { [weak self] (video: BCOVVideo?, jsonResponse: [AnyHashable: Any]?, error: Error?) -> Void in
    
       guard let _video = video else {
         print("ViewController Debug - Error retrieving video: \(error?.localizedDescription ?? "unknown error")")
         return
       }
    
       self?.playbackController?.setVideos([_video] as NSFastEnumeration)
    }
    
  6. 您的應用程式已準備好播放即時串流。