音訊裝置

Google Cast 音訊裝置僅支援音訊播放。本指南說明如何針對僅音訊裝置最佳化 Cast 應用程式,並善用記憶體、CPU 和網路頻寬的使用量減少需求。

支援 Google Cast 音訊的應用程式必須考量以下事項:

  • Google Cast 音訊裝置不會顯示影片或圖像。不過,許多音訊裝置都有顯示器,可用來顯示中繼資料,例如播放狀態 (播放或暫停) 和進度。您的應用程式不得只在接收端顯示這類重要使用者資訊;重要資訊和大部分的使用者介面都必須顯示在傳送端。
  • 為了正確執行 Web Receiver 應用程式,Google Cast for audio 裝置仍必須算繪圖形,即使這些圖形不會顯示也一樣。由於裝置可能不支援硬體加速圖形運算,接收器應用程式應避免使用圖形密集運算,例如色階、旋轉、Alpha 混合,以及每秒重繪進度列等大型物件。
  • Google Cast 音訊裝置僅支援受數位版權管理 (DRM) 機制保護的 Widevine 內容。
  • 對於大多數 Google Cast 音訊裝置,傳送端應用程式會控制裝置 (例如音箱) 的完整音量範圍,而非像 Chromecast 裝置那樣,只控制電視輸入音訊來源的音量。
  • 除了使用傳送端裝置 (例如手機) 控制播放功能外,應用程式可能還必須提供使用裝置本身的控制器 (例如遙控器、裝置上的按鈕或外部遙控應用程式) 控制播放功能。
  • 根據特定裝置的 UI,Google Cast for audio 裝置可能會支援使用小型 LCD 螢幕、HDMI 輸出 (適用於單件式環繞劇院或音訊/視訊接收器) 或外部遙控應用程式來顯示內容中繼資料。

開發

開發支援 Google Cast 音訊功能的 Cast 應用程式時,第一步是開發可投放音訊/影像的 Cast 應用程式,並確保應用程式可在 Chromecast 上執行。本文假設您已開發及測試這類應用程式。

應用程式可能同時支援音訊/視訊和純音訊裝置。它需要知道何時要投放到哪個裝置,並採取措施,確保在特定情境下提供最佳使用者體驗。

舉例來說,雙重影片和音訊應用程式 (例如本機/NAS 檔案播放應用程式) 應啟用投放至純音訊裝置的功能,以便支援播放音訊檔案,但應用程式不應允許使用者將影片檔案傳送至純音訊裝置。應用程式可以使用下文所述的適用於傳送端的裝置功能 API,判斷適合裝置的內容。

如要支援 Google Cast for Audio,應用程式必須執行下列操作:

  • 支援僅音訊:串流音樂和音訊檔案、廣播電台等。串流至 Web Receiver 應用程式的媒體不得是影片串流。此外,請避免串流傳輸圖像和圖片,以改善應用程式啟動時間和記憶體用量。請參閱下方的記憶體使用量規範

  • 在 Cast for Audio 裝置和一般 Chromecast 上正常運作。

裝置功能

應用程式可以透過裝置功能 API (可從裝置本身或透過傳送端或接收端 API 取得),得知是否在僅音訊裝置上執行。

裝置 HTTP 標頭

應用程式啟動期間,由 Cast 裝置提供的 CAST-DEVICE-CAPABILITIES HTTP 標頭會說明裝置功能。裝置會將含有此標頭的要求傳送至代管 Web Receiver 應用程式的伺服器。僅音訊裝置的標頭會使用 CAST-DEVICE-CAPABILITIES: {"display_supported":false} 描述裝置功能。

當伺服器收到裝置的要求時,您可以使用這個標頭中的資訊,將要求重新導向至針對音訊裝置最佳化的 Web Receiver 應用程式。

Web Receiver API

您可以在載入 Web Receiver 應用程式時呼叫 CastReceiverManager.getDeviceCapabilities(),取得相同的裝置功能物件。

詳情請參閱「裝置功能」。

傳送者 API

每個 Cast 傳送端 API 也都提供裝置功能資訊。這些值可讓傳送端應用程式決定要傳送哪種媒體類型給接收端。如果應用程式同時支援音訊和視訊,則可避免將視訊內容傳送至僅支援音訊的裝置。此外,應用程式可以使用最適合裝置的方法控制音量,如「設計檢查清單」所述。請參閱下列適用於傳送者的裝置功能 API:

記憶體用量指南

在音訊裝置上執行的 Web Receiver 應用程式必須管理記憶體用量,如下所示:

  • 請避免下載或使用任何圖片或圖像素材資源,以減少記憶體占用空間,並縮短播放開始的時間。
  • 使用媒體來源擴充功能 (MSE) 時,應用程式必須將串流緩衝區限制在 2MB。如果使用媒體播放器程式庫 (MPL),MPL 已定義應用程式的串流緩衝區大小。
  • 使用 HTMLMediaElement 時,Chrome 會根據串流速率定義應用程式的串流緩衝區大小。將音訊位元率限制在每秒 2 位元,支援支援的媒體中所述的所有編解碼器 (最高 48KHz/16 位元)。

音量控制項

對於大多數 Google Cast for Audio 裝置,傳送端應用程式會控制裝置的完整音量範圍,而非只控制音訊來源輸入音量,這與 Chromecast 裝置不同。也就是說,如果是純音訊應用程式,音量變更增量必須更小。如要瞭解在應用程式中提供音量控制功能的指南,請參閱下列文件:

裝置控制

Google Cast for Audio 裝置可能會提供專屬的播放控制選項 (例如按鈕、遙控器)。這些訊息會使用為 urn:x-cast:com.google.cast.media 命名空間定義的媒體播放訊息 (如「媒體播放訊息」一節所述),在接收端應用程式上控制播放。接收端應用程式必須支援這些媒體播放訊息,才能支援裝置的播放控制項。

此外,發送端應用程式也應支援從接收端傳送至發送端的訊息,這樣當使用者透過裝置控制項變更媒體狀態時,發送端應用程式就能從接收端接收狀態訊息,並據此更新 UI。

裝置顯示

音訊專用 Google Cast 裝置可能會在裝置上提供 LCD 螢幕,或提供可顯示媒體中繼資料的裝置專屬控制應用程式。接收器應用程式必須為所有音訊曲目提供這項中繼資料,並確保該中繼資料與目前播放的內容同步,以確保中繼資料在螢幕上顯示正確。如果應用程式使用自訂中繼資料,則必須提供標準音訊中繼資料 (曲目名稱、藝人名稱、專輯名稱等),如下所述各平台所示。

接收器在載入媒體時,會從傳送端取得中繼資料。在傳送端應用程式中,您必須使用可在接收端載入媒體的指令,指定下列所述的欄位,以便在 Google Cast for audio 裝置上顯示中繼資料。使用下列 API:

如果 Cast 應用程式在接收器或雲端中管理媒體佇列,Web Receiver 就必須使用 urn:x-cast:com.google.cast.media 命名空間發布任何媒體狀態更新,以便同步處理所有傳送端。

註冊

您必須使用 Google Cast SDK 開發人員控制台,註冊 Google Cast 音訊裝置進行測試,並註冊應用程式以支援 Google Cast 音訊裝置。

  • 如要進一步瞭解如何註冊裝置,請參閱「裝置」。
  • 註冊應用程式時,您必須勾選「支援投放至僅音訊裝置」核取方塊,才能讓應用程式探索 Google Cast 音訊裝置。請參閱「註冊應用程式」。

對於未發布的應用程式 (例如用於測試的應用程式),您也必須選取支援純音訊裝置的選項,才能讓應用程式偵測純音訊裝置。

Google Cast for Audio 2.0

Google Cast for Audio (GC4A) 2.0 是新一代 Cast 音訊平台,專為低記憶體裝置設計,可擴大可串流播放內容的裝置生態系統。由於 GC4A 2.0 鎖定音訊平台,因此網頁 API 集合會縮減,以便與無螢幕裝置保持一致。GC4A 2.0 會陸續推出,適用於支援投放功能的新音箱和現有音箱。

測試和偵錯

由於所有支援的音箱都會改用 GC4A 2.0,因此音訊應用程式開發人員必須在 GC4A 2.0 上測試應用程式。您可以在這裡列出的任何 GC4A 2.0 裝置上測試 GC4A 2.0 版的 Cast 應用程式。

GC4A 2.0 不支援 Chrome 遠端偵錯工具。如要對應用程式進行偵錯,Google 建議您使用 Cast Debug Logger

可用的 GC4A 2.0 裝置

以下是 GC4A 2.0 裝置的非完整清單:

  • Bose:Wi-Fi 音箱和智慧型條形音箱
  • JBL:Charge 5 Wi-Fi / Boombox 3 Wi-Fi / Authentics 200、300 和 500
  • Samsung:音樂相框 / 單件式環繞劇院
  • LG:Soundbar S90TY/SG10TY/SE70Q/S80Q/S90Q
  • Bang & Olufsen Beosound 2 / Beocore Connect
  • Sonoro Maestro 2 / Meisterstruck 2
  • Cambridge Audio MXN10
  • KEF LS60 / LSX II
  • Teufel Motiv Home
  • Nordic Argon Audio
  • WiiM CI MOD S / Ultra

建議您在 GC4A 2.0 上測試所有應用程式功能。請務必測試播放所有媒體類型 (Podcast、串流等)、暫停、快轉、跳過、變更播放清單、停止和重新連線 Cast。

支援的 API

GC4A 2.0 支援下列 API:

  • HTML
  • JavaScript ECMA 6
  • DOMParser
  • XMLSerializer
  • 文件和子類別
  • DocumentFragment
  • HTMLMediaElement 和 HTMLAudioElement
  • HTMLVideoElement (只能播放音訊內容)
  • HTMLScriptElement
  • HTMLBaseElement
  • HTMLTemplateElement
  • 自訂元素
  • Shadow DOM
  • 指令碼模組 / 非同步 / 延後
  • Fetch / XHR
  • WebSocket
  • MessagePort
  • Cookie
  • MSE (Media Source Extensions)
  • EME (加密媒體擴充功能)
  • 本機 / 工作階段儲存空間

GC4A 2.0 不支援

  • 動態模組匯入功能 (將於 2024 年新增)
  • CSS
  • IFrame
  • TextTracks

聯絡

如需測試設定相關協助,或無法使用 Bose 音箱,請來信至 gc4a-support-external@google.com