總覽
Cast Web Receiver SDK 支援使用多種網頁串流通訊協定播放內容。根據使用的通訊協定,SDK 會載入播放器來處理內容的播放作業。如果是 HLS 內容,系統會載入媒體播放器程式庫 (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 Receiver SDK 將改用 Shaka Player 做為 HLS 內容播放的預設播放器。我們會以分階段的方式進行,引導合作夥伴完成遷移程序。
階段 | 開始日期 | 總覽 |
---|---|---|
1 | 10 月 22 日 | Cast Web Receiver SDK 引進可選擇加入的 API,可在 Shaka Player 上播放 HLS 內容。 |
2 | 2025 年上半年 | 在播放 HLS 內容時,Cast Web Receiver SDK 會將預設播放器變更為 Shaka Player。 |
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 for HLS 的應用程式,都應設定至少 4.3.4
的 Shaka Player 版本,以便充分運用最新的 HLS 改善功能。如要選擇採用,請按照下列程式碼片段操作:
const context = cast.framework.CastReceiverContext.getInstance();
let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = true;
context.start(castReceiverOptions);
驗證內容
合作夥伴應先在 Shaka Player 上驗證內容播放功能,再選擇在正式版應用程式中使用 Shaka Player。建議您針對下列各項內容變化進行測試:
- 串流類型:直播或 VOD
- 容器格式:TS、MP4 或基本串流
- 內容中出現中斷或嵌入式廣告
- 在下列裝置類型上播放:智慧螢幕、Chromecast 轉接器、Android TV 裝置、內建 Chromecast 的電視、智慧音箱
如果發現任何錯誤或非預期行為,請回報錯誤。一旦您能夠驗證內容中沒有任何重大播放失敗問題,請將變更推送至實際工作環境。
停用
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.3
分支中遇到問題,請嘗試將其設為4.2.x
或3.3.x
版本中的最新版本。查看 Shaka Player 版本資訊,找出最相關的更新版本。請注意,shakaVersion
API 有支援的最低和最高版本,詳情請參閱參考說明文件。如果您發現迴歸現象,請在 Shaka Player issuetracker 中回報問題。 請嘗試變更播放器設定參數。您可以透過
PlayerConfiguration
物件設定 Shaka Player。Web Receiver SDK 會定義一組預設值,並讓應用程式透過PlaybackConfig
物件中的shakaConfig
屬性修改這項設定。系統會在載入期間 (也就是播放器例項建立時) 評估這個值。查看更多此類別的結果:應用程式設定和選項。Web Receiver SDK 設定的預設值是建議值。
查看 Shaka Player issuetracker 或 Cast issuetracker 中是否已回報問題。針對錯誤留言,並在該錯誤描述您的問題時,加入任何相關資訊。
在 Shaka Player 示範網站上測試內容。如果發現問題在內容的示範網站中重現,請向 Shaka Player 專案回報錯誤。
如果在 Cast 端點上遇到 Shaka Player 專屬問題,請在 Cast Issue Tracker 中回報錯誤。
常見問題
更換球員可能會引發許多問題。以下是常見問題的解答,可協助您完成遷移程序。
我是否應遷移至 Shaka Player?
我們建議使用 HLS 內容的合作夥伴盡快開始遷移程序。因此,應用程式可為使用者提供更強大的串流體驗。如要進一步瞭解其他優點,請參閱本指南的「Shaka Player 優點」一節。合作夥伴應使用 Shaka Player 驗證應用程式是否正常運作,確保順暢的轉換作業。如果合作夥伴未事先驗證內容是否能在 Shaka Player 上正常播放,某些應用程式可能會在Web Receiver SDK 轉換為選擇退出模式時面臨風險。
更換玩家的預期難度為何?
合作夥伴需要在測試環境中測試應用程式和內容,確保使用者體驗與 HLS 相似或更佳。為此,合作夥伴需要在內部環境中選擇加入這項功能,並徹底測試內容是否能使用 Shaka Player 播放。如要進一步瞭解應著重於內容的哪些部分,請參閱「驗證內容」一文。驗證完成後,合作夥伴必須在實際工作應用程式環境中加入啟用旗標,才能開始享有 Shaka Player 提供的優勢。從大方向來看,合作夥伴只需進行少量軟體開發變更,並滿足大部分的品質保證要求,即可順利完成遷移。
我的應用程式即將使用 HLS 串流內容,我該怎麼做?
新的整合項目應選擇使用 Shaka Player 進行播放。這樣一來,您的應用程式就能獲得更完善的長期支援,並充分運用新的 HLS 功能和效能改善功能。如果新的整合功能發生問題,請盡快回報錯誤,讓工程團隊有足夠的時間解決問題。如果您的應用程式有嚴格的期限,請在錯誤報告中加入這項資訊,並說明影響,以便我們據此調整優先順序。我們的工程團隊會盡力提供解決方案,妥善支援您的使用者。
我的內容或應用程式無法與 Shaka Player 搭配運作,該怎麼辦?
請向 Shaka Player 專案或 Cast 專案回報錯誤 (請參閱「回報問題」)。Cast SDK 工程團隊正在積極監控這些追蹤器,並會與您合作解決任何問題。越早偵測到這些問題,就越有機會提供修正內容。
MPL 不再接收重要更新,這究竟代表什麼意思?
以往,MPL 採用了新的 HLS 功能,並透過重大更新修補重大錯誤。由於 MPL 不再接收這些資訊,因此播放器不會新增 HLS 功能。同樣地,我們也不會在 MPL 中修正任何已回報的 MPL 上 HLS 播放問題。只要切換至 Shaka Player 進行播放,這些問題就應該會解決。如果問題仍未解決,請回報錯誤,並附上在 Shaka Player 上遇到的相關問題。合作夥伴應停止使用 MPL。
我的內容使用了流暢串流通訊協定,這會對我的應用程式造成什麼影響?
接收應用程式仍可存取代管的 MPL 二進位檔。不過,由於Smooth Streaming 規格已超過四年未更新,因此我們不會支援任何 Smooth Streaming 相關功能要求和錯誤修正。建議你遷移內容,改用 DASH 或 HLS 串流通訊協定,以便繼續接收內容的成效更新和支援。
我的內容未使用 HLS 或 Smooth Stream 通訊協定,這對我的應用程式有何影響?
如果內容媒體庫未使用上述任一串流協定,則不會受到遷移作業的影響。您不需要在應用程式中進行任何變更。