總覽
Cast Web Receiver SDK 支援使用多種網路串流通訊協定播放內容。SDK 會根據使用的通訊協定載入播放器,處理內容的播放作業。如果是 HLS 內容,系統會載入 Media Player Library (MPL)。如果是 DASH 內容,系統會載入 Shaka Player。
今後,Cast SDK 和 Shaka Player 工程團隊將整合資源,在 Shaka Player 上支援更多 HLS 內容播放功能。MPL 不再接收重大更新。建議您選擇使用 Shaka Player 播放應用程式的 HLS 內容。
Shaka Player 優勢
變更播放器後,應用程式可享有下列優點:
- 更穩定的串流工作階段,可減少載入時間失敗和延遲。
- 持續採用最新的 HLS 功能。
- 更清楚分析根本原因:由於 Shaka Player 屬於開放原始碼,因此可更清楚分析根本原因,瞭解玩家內容相容性問題。
- 開放原始碼播放器程式碼庫可讓合作夥伴貢獻 Shaka Player 專案。
- 大幅縮短功能和錯誤修正的製作時間,因為 Shaka Player 的發布頻率很高,且不受 Web Receiver SDK 發布的影響。
- 進一步掌控播放環境:透過
shakaVersion
API 實現。 - Google 擴大支援播放功能,並提供工程資源,專注於 Shaka Player 的 HLS 播放功能,詳情請參閱路線圖。
時間軸
Web 接收器 SDK 將改用 Shaka Player 做為 HLS 內容播放的預設播放器。我們會採取階段式做法,引導合作夥伴完成遷移程序。
階段 | 開始日期 | 總覽 |
---|---|---|
1 | 2022 年 10 月 | Cast Web Receiver SDK 導入 API 來選擇啟用,在 Shaka Player 上播放 HLS 內容。 |
2 | 2025 年 11 月 | Cast Web Receiver SDK 會將預設播放器變更為 Shaka Player,用於播放 HLS 內容。 |
Web Receiver SDK 工程團隊會採取以效能為導向的做法,只有在 Shaka Player 的效能達到 MPL 的基準效能時,才會進入下一個階段。這些異動將在 cast-sdk-announcements Google 群組中公布,並更新至本指南。
選擇啟用
從 CAF 版本 3.0.0105
開始,應用程式層級的設定可選擇使用 Shaka Player 播放 HLS。這個版本也推出 API,可從支援的 Shaka Player 版本範圍中選取要載入的版本。這些旗標會透過 useShakaForHls
和 shakaVersion
屬性在 CastReceiverOptions
類別中提供,並在啟動 CastReceiverContext
時評估。如果應用程式選擇使用 Shaka 播放器播放 HLS,請務必將 Shaka Player 版本設為至少 4.15.12
,才能享有最新的 HLS 改善功能。如要啟用這項功能,請使用下列程式碼片段:
const context = cast.framework.CastReceiverContext.getInstance();
let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = true;
context.start(castReceiverOptions);
驗證內容
合作夥伴應先在 Shaka Player 上驗證內容播放功能,再選擇在正式版應用程式中使用 Shaka Player。建議測試下列各項內容變化:
- 串流類型:LIVE 或 VOD
- 容器格式:TS、MP4 或基本串流
- 含有中斷或嵌入廣告的內容
- 支援的裝置類型:智慧螢幕、Google Cast 轉接器、Android TV 裝置、內建 Google Cast 的電視、智慧音箱
如果發現任何錯誤或非預期行為,請回報錯誤。 確認內容沒有重大播放失敗問題後,即可將變更推送到正式環境。
停用
根據時間表,Web Receiver SDK 將改為採用選擇停用模式,播放 Shaka Player HLS 內容。屬性 useShakaForHls
的預設值將從 false
變更為 true
。屆時,應用程式可以選擇使用 MPL 播放 HLS,方法是將這項屬性手動設為 false
。啟動 CastReceiverContext
時,Web Receiver SDK 會還原為載入 MPL,而非 Shaka Player。如要選擇停用,請參閱以下範例:
const context = cast.framework.CastReceiverContext.getInstance();
let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = false;
context.start(castReceiverOptions);
回報問題
我們鼓勵合作夥伴在播放 HLS 內容時,回報發現的任何問題。如前所述,MPL 不再接收重大更新。如果 MPL 發生任何問題,請按照本指南「選擇加入」一節的步驟操作,確認切換至 Shaka Player 是否能解決問題。如果問題仍未解決,或切換播放器時發生其他問題,請按照下列步驟操作。
- 嘗試將
shakaVersion
設為其他分支版本,解決問題。舉例來說,如果4.15
分支發生問題,請嘗試在另一個分支中將其設為最新版本。請參閱 Shaka Player 版本資訊,瞭解最相關的更新內容。請注意,shakaVersion
API 支援的最低和最高版本,詳情請參閱參考說明文件。如果發現有迴歸情形,請在 Shaka Player Issue Tracker 中回報問題。 - 嘗試變更播放器設定參數。Shaka Player 可透過
PlayerConfiguration
物件設定。Web Receiver SDK 會定義一組預設值,並允許應用程式透過PlaybackConfig
物件中的shakaConfig
屬性修改這項設定。系統會在建立播放器執行個體時評估這項屬性。詳情請參閱應用程式設定和選項。Web 接收器 SDK 設定的預設值是建議值。 - 查看 Shaka Player 問題追蹤工具或 Cast 問題追蹤工具是否已回報該問題。如果該錯誤也與您的問題相關,請留言並新增任何相關資訊。
- 在 Shaka Player 示範網站上測試內容。如果發現問題在內容的示範網站中重現,請向 Shaka Player 專案回報錯誤。
- 如果問題只發生在 Cast 端點上的 Shaka Player,請在 Cast 問題追蹤工具中回報錯誤。
常見問題
球員異動可能會引發許多疑問。以下是常見問題的解答,可協助您完成遷移程序。
我應該遷移至 Shaka Player 嗎?
我們建議使用 HLS 內容的合作夥伴盡快開始遷移程序。因此,應用程式將為使用者提供更穩定的串流體驗。如要瞭解更多優點,請參閱本指南的「Shaka Player 優點」一節。合作夥伴應使用 Shaka Player 驗證應用程式是否正常運作,確保順利轉換。如果合作夥伴未事先驗證內容是否能在 Shaka Player 上正常播放,Web Receiver SDK 轉換為停用模式時,部分應用程式可能會面臨風險。
更換播放器時,預期需要投入多少心力?
合作夥伴必須在測試環境中測試應用程式和內容,確保使用者體驗與 HLS 相比不會變差,甚至有所提升。如要啟用這項功能,合作夥伴必須在內部環境選擇啟用,並徹底測試內容是否能透過 Shaka Player 播放。如要瞭解應著重驗證內容的哪些方面,請參閱「驗證內容」。通過驗證後,合作夥伴必須在正式版應用程式環境中新增旗標來選擇加入,才能開始享有 Shaka Player 提供的優勢。從高層次來看,合作夥伴只需進行極少的軟體開發變更,並滿足大部分的 QA 需求,即可順利遷移。
我的應用程式即將使用 HLS 串流內容,該怎麼做?
新的整合項目應選擇使用 Shaka Player 播放內容。這樣一來,您的應用程式就能獲得長期支援,並充分運用新的 HLS 功能和效能提升。如果新的整合功能發生問題,請盡快回報錯誤,讓工程團隊有足夠的時間解決問題。如果應用程式的期限很趕,請在錯誤報告中加入這項資訊,以及影響程度,以便我們據此排定優先順序。工程團隊會努力提供解決方案,充分支援您的使用者。
我的內容或應用程式無法搭配 Shaka Player 使用,該怎麼辦?
請向 Shaka Player 專案或 Cast 專案回報錯誤 (請參閱「回報問題」)。Cast SDK 工程團隊會積極監控這些追蹤器,並與您合作解決任何問題。越早偵測到這些問題,他們就越有時間修正。
MPL 不再接收重大更新,這代表什麼?
MPL 過去會透過重大更新,採用新的 HLS 功能並修正重大錯誤。由於 MPL 不再接收這些功能,因此播放器不會新增 HLS 功能。同樣地,MPL 不會修正任何 MPL 上 HLS 播放的回報問題。如要解決這些問題,請改用 Shaka Player 播放內容。如果問題仍未解決,請回報 Shaka Player 相關問題的錯誤。合作夥伴應停止使用 MPL。
我的內容使用 Smooth Streaming 通訊協定,這對我的應用程式有何影響?
MPL 二進位檔仍會由接收器應用程式代管及存取。不過,由於平滑串流規格已超過四年未更新,因此我們不會支援任何與平滑串流相關的功能要求和錯誤修正。建議您將內容遷移至 DASH 或 HLS 串流通訊協定,以便繼續接收內容的成效更新和支援服務。
我的內容未使用 HLS 或 Smooth Stream 通訊協定,這對我的應用程式有何影響?
如果內容庫未使用這兩種串流通訊協定,就不會受到遷移作業影響。您不需要變更應用程式。