即時主要資訊清單更新架構

以下是有關瀏覽器TVSDK如何容納更新版主資料清單的一些資訊和範例。

此功能預設為關閉。 如果您的應用程式以分鐘為單位設定更新頻率,以將其開啟,則會在每個更新間隔後執行下列步驟:

  1. 瀏覽器TVSDK會檢查主要資訊清單的上次修改時間和etag,以判斷檔案是否已更新。

    如果時間和etag都已變更,則會將檔案視為已修改。

  2. 瀏覽器TVSDK會剖析和分析新資訊清單,並根據更新的性質採取適當的動作。

  3. 如果目前的播放位元速率符合修改資訊清單的位元速率,瀏覽器TVSDK會切換至新的設定檔。

    新的設定檔可能來自不同的伺服器或相同的伺服器,位元速率相同。 在這種情況下,轉換是平滑的。

  4. 如果新資訊清單中不再出現目前的播放位元速率,瀏覽器TVSDK會嘗試在目前設定檔中尋找位元速率,該位元速率也會存在於新資訊清單中。

    • 如果找到相符專案,播放器會先切換至現有資訊清單中的相符位元速率設定檔,再切換至更新資訊清單中的相符位元速率設定檔。 這可確保過渡平滑。
    • 如果先前資訊清單與新資訊清單之間沒有共同的位元速率,或是瀏覽器TVSDK無法切換到符合的位元速率,瀏覽器TVSDK會直接切換到新資訊清單的最低位元速率設定檔,並使用ABR根據頻寬切換到任何允許的位元速率。 這可能會導致播放時發生輕微問題,但影響應該很小。
  5. 如果更新成功,瀏覽器TVSDK會傳送 MediaPlayerItemEvent.MASTER_UPDATED 事件。

  6. 如果更新不成功,則播放會從此更新之前繼續設定。

範例1

下列位元速率正在進行即時廣播:

  • 500k
  • 900k
  • 2100k

2100k串流有一些問題,因此需要重新啟動。 主要資訊清單已更新,僅包含500k和900k。 之後不久,在2100k觀看此節目的使用者將體驗位元速率切換到900k。 觀看90萬次的使用者繼續觀看90萬次的節目。 之後,2100k資料流會繼續,並新增回主資訊清單。 稍後,在900k觀看並擁有頻寬的使用者切換至2100k。

範例2

下列位元速率正在進行即時廣播:

  • 500k
  • 900k
  • 2100k

所有這些位元速率都需要重新啟動。 為此設定了兩個暫時串流,分別為400k和1500k。 使用者會切換至400k,這是新組態的最低位元速率。 當頻寬足夠時,部分使用者會切換至1500k。 之後,會備份3位元速率,並更新主要資訊清單。 使用者會在500k自動切換回觀看,這是修訂(原始)資訊清單中最低的頻寬。 一段時間後,使用者會切換至其網路允許的最高頻寬(900k或1200k)。

本頁內容