音訊裝置

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

如果應用程式支援 Google Cast 音訊功能,必須考量以下幾點:

  • Google Audio 音訊裝置不會顯示視訊或圖形。不過,許多音訊裝置都有顯示中繼資料 (例如播放狀態 (播放中或已暫停) 和進度) 的顯示畫面。應用程式不得在接收端顯示這類重要使用者資訊,且寄件者必須顯示重要資訊和大部分使用者介面。
  • 為正確執行 Web Receiver 應用程式,音訊裝置適用的 Google Cast 仍須顯示圖像 (即使未顯示)。由於裝置可能不支援硬體加速的圖形運算作業,接收器應用程式應避免使用需要大量圖形的作業 (例如顏色漸層、旋轉、Alpha 混合和重新繪製大型物件 (例如進度列) 超過一次。
  • Google Cast 音訊裝置僅支援將 Widevine 用於數位版權管理 (DRM) 保護的內容。
  • 在大部分的 Google Cast 音訊裝置上,傳送端應用程式會控制裝置的完整音量 (例如喇叭),而不像 Chromecast 裝置一樣,只能輸出電視音訊來源的音量。
  • 除了使用傳送者裝置 (例如手機) 控製播放功能之外,應用程式可能都必須提供控制權限,例如使用裝置本身的控制器 (例如遙控器、裝置端按鈕或外部遠端應用程式) 來播放。
  • Google Cast 音訊裝置可能支援以小型 LCD 螢幕、HDMI 輸出 (適用於單件式環繞劇院或視訊接收器) 或外部遠端應用程式 (視特定裝置 UI 而定) 顯示內容中繼資料。

開發

為了開發支援 Google Cast 音訊功能的 Cast 應用程式,第一步是開發用於音訊的 Cast 應用程式,並確認應用程式是在 Chromecast 上執行。這份文件假設您已開發並測試過這類應用程式。

應用程式可能同時支援視訊和純音訊裝置。因此,您需要瞭解將音訊投放到另一部裝置的時間,並採取相關措施來確保在特定情況下獲得最佳使用者體驗。

舉例來說,雙視訊和音訊應用程式 (例如本機/NAS 檔案播放應用程式) 應支援在純音訊裝置上投放,以支援播放音訊檔案,但應用程式不應允許使用者將影片檔案傳送至純音訊裝置。應用程式可透過下文說明的寄件者專用裝置功能 API 來判斷裝置適合的內容。

如要支援 Google Cast 音訊功能,應用程式必須符合以下條件:

  • 支援純音訊:串流音樂和音訊檔案、電台等。串流到 Web Receiver 應用程式的媒體不得為影片串流。此外,請避免透過串流圖像和映像檔來改善應用程式啟動時間和記憶體用量。請參閱下方的記憶體用量指南

  • 請在投放過程中正常執行投放裝置,以及一般 Chromecast 。

裝置功能

應用程式可透過裝置功能,或透過裝置/接收端 API 瞭解其是否在純音訊裝置上執行。

裝置 HTTP 標頭

投放期間,投放裝置提供的 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:

記憶體使用規範

在音訊裝置上執行的網路接收器應用程式必須管理記憶體用量,如下所示:

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

音量控制

針對大多數音訊裝置的 Google Cast,寄件者應用程式會控制裝置的最大音量,而不只是音訊來源的輸入音量,就如同 Chromecast 裝置一樣。這表示純音訊應用程式的音量變更幅度必須更小。請參閱下列文件,瞭解如何在應用程式中提供音量控制。

裝置控制

Google Audio 音訊裝置可能會有專屬的播放控制項 (例如按鈕、遙控器)。這些類別會使用 urn:x-cast:com.google.cast.media 命名空間定義的媒體播放訊息 (如媒體播放訊息所述),在接收器應用程式上控製播放。您的接收端應用程式必須支援這些媒體播放訊息,以支援裝置的播放控制項。

此外,寄件者應用程式應支援「從接收者到傳送者的訊息」,以便當使用者透過裝置控制項變更媒體狀態時,傳送端應用程式會收到接收端的狀態訊息,並據此更新使用者介面。

裝置顯示

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

接收器會在載入媒體時從傳送者取得中繼資料。在寄件者應用程式中,使用下列指令在接收器上載入媒體。您必須指定下列欄位,中繼資料才能在 Google Cast 的音訊裝置上顯示中繼資料。使用下列 API:

如果 Cast 應用程式管理接收器或雲端上的媒體佇列,網路接收器就必須使用 urn:x-cast:com.google.cast.media 命名空間播送任何媒體狀態更新,以便同步處理所有寄件者。

註冊

您必須使用 Google Cast SDK Developer Console,註冊 Google Cast 音訊裝置才能進行測試,並註冊應用程式以支援音訊裝置 Google Cast。

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

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

Google Cast 音訊版 2.0

Google Cast for Audio (GC4A) 2.0 是新一代的 Cast 音訊平台,專為指定低記憶體裝置所設計,以拓展可以串流播放內容的裝置生態系統。

音訊應用程式開發人員必須在 GC4A 2.0 中測試自己的應用程式,這一點非常重要。您可以在正式版 Bose 揚聲器 (例如 Bose 智慧型揚聲器 500) 上測試 GC4A 2.0 的 Cast 應用程式。

如需測試方面的協助或無法使用 Bose 喇叭,請聯絡 gc4a-support-external@google.com。如要對應用程式進行偵錯,Google 建議您使用投放偵錯記錄