Shaka 播放器遷移 HLS

總覽

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 版本範圍中選取要載入的版本。這些標記會透過 useShakaForHlsshakaVersion 屬性,在 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 後是否能解決問題。如果問題仍未解決,或在切換玩家時遇到其他問題,請按照下列步驟操作。

  1. 請嘗試將 shakaVersion 設為不同的分支版本,以解決問題。舉例來說,如果在 4.3 分支中遇到問題,請嘗試將其設為 4.2.x3.3.x 版本中的最新版本。查看 Shaka Player 版本資訊,找出最相關的更新版本。請注意,shakaVersion API 有支援的最低和最高版本,詳情請參閱參考說明文件。如果您發現迴歸現象,請在 Shaka Player issuetracker 中回報問題。
  2. 請嘗試變更播放器設定參數。您可以透過 PlayerConfiguration 物件設定 Shaka Player。Web Receiver SDK 會定義一組預設值,並讓應用程式透過 PlaybackConfig 物件中的 shakaConfig 屬性修改這項設定。系統會在載入期間 (也就是播放器例項建立時) 評估這個值。查看更多此類別的結果:

    應用程式設定和選項。Web Receiver SDK 設定的預設值是建議值。

  3. 查看 Shaka Player issuetrackerCast issuetracker 中是否已回報問題。針對錯誤留言,並在該錯誤描述您的問題時,加入任何相關資訊。

  4. Shaka Player 示範網站上測試內容。如果發現問題在內容的示範網站中重現,請向 Shaka Player 專案回報錯誤

  5. 如果在 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 通訊協定,這對我的應用程式有何影響?

如果內容媒體庫未使用上述任一串流協定,則不會受到遷移作業的影響。您不需要在應用程式中進行任何變更。