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 的優勢

在不斷變化的玩家中,應用程式可善用以下優勢:

  • 更強大的串流工作階段,可改善載入時間失敗和延遲時間。
  • 持續採用最新的 HTTP 即時串流功能。
  • 因為 Shaka Player 的開放原始碼特性,針對玩家內容相容性問題,提高根本原因分析的透明度
  • 開放原始碼玩家程式碼集可讓合作夥伴對 Shaka Player 專案貢獻
  • 由於 Shaaka Player 的發布頻率頻繁,且與 Web Receiver SDK 的版本無關,功能和錯誤修正時間大幅縮短
  • 進一步控管 shakaVersion API 提供的播放環境
  • 提高 Google 播放支援,資源如道路圖所示,聚焦於 Shaka Player 的 HLS 播放作業的工程資源。

時間表

Web Receiver SDK 將改用 Shaka Player 做為播放 HLS 內容的預設播放器。您將分階段進行這項作業,引導合作夥伴完成遷移程序。

階段 開始日期 總覽
1 2022 年 10 月 Cast Web Receiver SDK 提供 API 讓您選擇在 Shaka Player 上播放 HLS 內容。
2 2024 年下半年 Cast Web Receiver SDK 會將播放 HLS 內容的預設播放器變更為 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 啟動時進行評估。凡是為 HLS 啟用 Shaka 播放器的應用程式,都應該將 Shaka Player 版本設為至少 4.3.4,才能享有最新的 HLS 改善項目。請按照下列程式碼片段選擇加入:

const context = cast.framework.CastReceiverContext.getInstance();

let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = true;

context.start(castReceiverOptions);

驗證內容

合作夥伴應先驗證在 Shaka Player 上播放的內容,然後再選擇在正式版應用程式中使用 Shaka Player。建議您針對下列內容的各個變化版本進行測試:

  • 串流類型:直播或隨選
  • 容器格式:TS、MP4 或基本串流
  • 包含不中斷或內嵌廣告的內容
  • 在下列裝置類型上播放:智慧螢幕、Chromecast Dongle、Android TV 裝置、內建 Chromecast 的電視、智慧音箱

如果你發現任何錯誤或非預期的行為,請回報錯誤。如果能夠確認內容沒有嚴重的播放錯誤,請將變更推送至實際工作環境。

選擇禁止顯示

Web Receiver SDK 將根據時間軸,轉換為 Shaka Player HLS 內容播放時選擇退出模型。屬性 useShakaForHls 會將預設值從 false 變更為 true。屆時,應用程式可以將這項屬性手動設定為 false,選擇使用 MPL 進行 HTTP 即時串流播放。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);

回報問題

我們建議合作夥伴在播放 HTTP 即時串流內容時,向我們提出任何問題。如前所述,MPL 不會再收到重大更新。如果在 MPL 中遇到任何問題,請按照指南「Opt in」(加入) 一節中的步驟,確認切換至 Shaka Player 是否會解決問題。如果問題仍未解決,或在切換玩家時遇到其他問題,請按照下列步驟操作。

  1. 請嘗試將 shakaVersion 設為其他分支版本版本,以解決問題。舉例來說,如果 4.3 分支版本發生問題,請嘗試透過 4.2.x3.3.x 版本將其設為最新版本。查看Shaka Player 版本資訊,找出最相關的更新的發布內容。請注意,shakaVersion API 設有支援的最低和最高版本,詳情請參閱參考說明文件。如果您發現發生迴歸問題,請透過 Shaka Player Issue Tracker 回報問題。
  2. 嘗試變更玩家設定參數。您可以透過 PlayerConfiguration 物件設定 Shaka Player。WebReceiver SDK 定義一組預設值,並讓應用程式能夠透過 PlaybackConfig 物件中的 shakaConfig 屬性修改這項設定。在建立玩家執行個體時,系統會在載入期間評估這個值。查看更多此類別的結果:

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

  3. 查看是否已透過 Shaka Player Issue TrackerCast Issue Tracker 回報此問題。在錯誤上留言,並提供任何與問題相關的資訊 (如果有的話)。

  4. 「Shaka Player」示範網站上測試你的內容。如果您發現內容在示範網站上重現了問題,請透過 Shaka Player 專案回報錯誤

  5. 如果投放端點上的 Shaka Player 發生專屬問題,請在 Cast Issue Tracker 中回報錯誤

常見問題

改變玩家的腳步可能會吃掉很多問題。以下是常見問題的解答,有助於引導您完成遷移程序。

我應該遷移至 Shaka Player 嗎?

我們建議使用 HTTP 即時串流內容的合作夥伴盡快展開遷移程序。因此,您的應用程式可為使用者提供更強大的串流體驗。詳情請參閱本指南的「Shaka 玩家優勢」一節。合作夥伴應使用 Shaka Player 驗證應用程式是否正常運作,確保能順暢轉換。如果合作夥伴未提前驗證內容是否能在 Shaka Player 上正常播放,則部分應用程式可能在 Web Receiver SDK 轉換選擇退出模型時面臨風險。

改變玩家的期望程度為何?

合作夥伴需要在測試環境中測試應用程式和內容,確保相較於 HTTP 即時串流,使用者體驗較為相似或有所改善。為此,合作夥伴需要在內部環境中選擇採用這項功能,並完整測試內容是否能使用 Shaka Player 播放。請參閱驗證內容一文,深入瞭解該著重在內容哪些方面。驗證完畢後,合作夥伴需要在實際工作環境應用程式環境中新增該旗標,以便開始充分運用 Shaka Player 提供的優勢。大致上來說,我們的軟體開發作業幾乎沒有變動,大部分都是品質確保要求,合作夥伴才能順利遷移。

我的應用程式不久後會使用 HTTP 即時串流 (HLS) 串流內容,該怎麼辦?

新版整合服務應選擇使用 Shaka Player 播放內容。您的應用程式未來將獲得更好的支援,並能利用新的 HLS 功能和效能改善項目。如果新的整合發生問題,請盡快回報錯誤,讓工程團隊有足夠的時間解決問題。如果應用程式的期限會延長,請在錯誤報告中附上相關資訊,以及據此安排優先處理順序的影響。我們的工程團隊會努力提供解決方案,為使用者提供妥善的支援。

我的內容或應用程式無法與 Shaka Player 搭配使用,接下來該怎麼做?

您應針對 Shaka Player 專案或 Cast 專案回報錯誤 (請參閱「回報問題」)。Cast SDK 工程團隊正在主動監控這些追蹤程式,也會與您一同合作解決任何問題。越早偵測到這些問題,就需要越多時間修正。

MPL 不再接收重要更新,這代表什麼意思?

MPL 過去曾採用新的 HLS 功能,並透過重大更新修補重大錯誤。現在 MPL 無法再接收這些資訊,系統不會將新的 HLS 功能加入播放器。同樣地,MPL 上的 HLS 播放時回報的任何問題,都不會在 MPL 中修正。切換至 Shaka Player 播放時應解決這些問題。如果問題持續發生,則應針對 Shaka Player 中遇到的問題提出錯誤。合作夥伴應停止使用 MPL。

我的內容使用 Smooth Streaming 通訊協定,這對我的應用程式有何影響?

MPL 二進位檔仍會託管,且可供接收器應用程式存取。不過,由於 Smooth Streaming 規格已有四年以上尚未更新,因此系統也不會支援任何「流暢串流」相關功能要求和錯誤修正。建議您遷移內容,改用 DASH 或 HLS 串流通訊協定,以便繼續接收內容的效能更新和支援。

我的內容未使用 HLS 或 Smooth Stream 通訊協定,這對應用程式有何影響?

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