帶有原生 SDK 的 Chromecast

在本主題中,您將了解如何從使用 Brightcove Native SDK 構建的應用程序將視頻投射到連接 Chromecast 的電視。

簡介

谷歌瀏覽器是一種可以插入電視的 HDMI 連接埠的裝置。使用智慧型手機或電腦做為遙控器,您可以使用 Chromecast 存取影片內容。Chromecast 插件使播放器能夠使用 Brightcove 本機 SDK 將視頻從您的移動設備應用程序投射到 Chromecast 設備。

此外掛程式支援所有使用 HLS 或 DASH 的視訊雲端影片或外部串流,包括使用 Widevine 的 DRM 加密串流。廣告是透過視訊雲端伺服器端廣告插入 (SSAI) 支援。不支援用戶端廣告和播放清單。

要使用插件,請執行以下步驟:

  1. 包括適用於 Android 和/或 iOS 的本機 SDK 的 Chromecast 插件(請參閱下面的 實施 部分)。
  2. 請確認 Chromecast 裝置與您的裝置位於相同的網路上,以便播放影片。
  3. 開始播放視訊。
  4. 按一下投射按鈕,然後選擇您的 Chromecast 裝置。

應用程式元件

Chromecast 背後的軟體由下列元件組成:

  • 發件人應用程序:這是可以啟動強制轉換會話並與接收方通信的任何應用程序。寄件者應用程式可以被視為 Chromecast 生態系統的「用戶端」部分。

    Chromecast 插件在本機 SDK 中啟用發送器應用程序。您將在本主題中了解它。

  • 接收器應用程序:這是一個自定義的Web應用程序,託管在公共互聯網上,並在Chromecast設備上運行。它處理髮送方應用程序與接收方設備之間的通信。它可以被認為是一個單一的頁面 HTML 應用程序與 CSS 和 JavaScript 資產。

    默認情況下,Chromecast 插件使用託管在我們 CDN 上的 Brightcove Cast Receiver 應用程序。接收器應用程序是在投射會話期間加載到 Chromecast 上的網絡應用程序。

支持的 Chromecast 設備

支持以下設備:

  • Chromecast(第3代)
  • Chromecast Ultra
  • 帶 Google TV 的 Chromecast

這個怎麼運作

當前的實現(插件/接收器版本2.x)使用CAF(廣播應用程序框架)API。

添加Chromecast接收器插件後,如果本地網絡上有可用的Chromecast,則播放器將在播放器用戶界面中顯示一個投射按鈕。

單擊或點擊此按鈕時,將使用播放器中加載的當前視頻啟動投射會話。以下是它的工作原理:

  1. 插件將一組參數發送到接收器。
  2. 接收器通過從Brightcove的CDN加載來鏡像發送方播放器。
  3. 加載後,接收方播放器會從播放會話開始時發送的Playback API加載視頻ID。
  4. 然後,接收方播放器在發送播放器的播放頭位置開始播放。

除了沒有Playback API請求外,此過程對於非Video Cloud源是相同的。

分析

當前,從分析的角度來看,投射會話被視為全新的回放會話。

從UX角度來看,查看者將看到他們的流在發送器設備上暫停並在接收器上恢復。

從數據角度來看,由於默認情況下我們的指標是匿名的,因此將其記錄為新的查看器,並在單獨的設備上開始新的流。這是實際發生的情況。

實作

有關實施詳情,請參閱以下內容:

自定義數據

customData接口提供了一種方法,發送者可以通過該方法將任意數據傳遞到自定義 Chromecast 接收器,例如 Brightcove 的接收器應用程序。

對於 Brightcove Player(網絡)發件人,customData完全由插件處理。集成商無事可做。

對於所有其他發送者,例如適用於 Android 或 iOS 的 Native SDK,customData必須由發送者構建。

customData.accountId(必需的)

類型:string

從網絡播放器投射時,這是自動的。所有其他發送者(例如本機 SDK)必須顯式設置它。

customData.analyticsParams

類型:object

此屬性應該是一個對象,可用於將參數傳遞給接收器上的分析實現,以便發送到數據收集 API 的信標。它支持以下屬性:

屬性 類型 描述
analyticsParams.application string 允許設置明文應用程序 ID。這對於像 Engage 這樣的應用程序很有用。
analyticsParams.user string 允許為發送到數據收集 API 的信標設置明文用戶 ID。這對於跨設備恢復 (XDR) 等功能很有用。

customData.catalogParams

類型:object

這應該是目錄參數對象

傳遞給接收器上的 Playback API 的所有值都必須來自此對象。

customData.keySystems

類型:object

通過媒體信息對象提供媒體時,這可用於以與播放 API 返回的格式相同的格式提供 DRM 設置:

keySystems: {
  'com.widevine.alpha': {
    url: 'https://url/to/widevine/license'
  }
}

customData.playerUrl

類型:string

這可用於提供要加載的自定義播放器 URL。

從網絡播放器投射時,默認情況下它將在發送者上鏡像播放器。可以通過傳遞來覆蓋此行為"playerUrl": "default"在選項中(見上文)。這對測試很有用。

從本機 SDK 投射時,它將回退到默認播放器(可在 Players Prod 帳戶中使用)。