處理即時流中的封鎖

您可以處理即時視訊串流中的封鎖期,並在封鎖期間提供替代內容。

在即時串流中發生封鎖時,您的播放器會使用事件處理常式來偵測封鎖,並提供替代內容給不符合主串流觀賞資格的使用者。 您的播放器會偵測封鎖期的開始和結束,從主串流切換播放至替代串流,並在封鎖期結束時切換回主串流。

在用戶端應用程式中,您可在TVSDK中訂閱封鎖標籤。 當收到新​計時元資料​對象的通知時,您將解析計時元資料對象的資料,以標識該對象指示封鎖進入或退出。 對於已識別的封鎖期,您會呼叫相關的TVSDK元素,以在封鎖期開始時切換至替代內容,並在封鎖期結束時再次呼叫主要內容。

秘訣

在播放內容之前,鍵仍會從資訊清單下載。

當使用者在封鎖期結束後連線至即時串流,並及時捲動回封鎖期後,內容就會播放。

重要

如果所有關鍵請求都失敗,則在剖析資訊清單時會擲回錯誤。 如果某些請求失敗,而某些請求成功,TVSDK會嘗試播放內容。 如果TVSDK嘗試播放內容的某一部分,但沒有有效的金鑰可解密此內容,則會傳回錯誤。

要處理即時流中的封鎖期,請執行以下操作:

  1. 在即時串流資訊清單中訂閱封鎖標籤,以設定您的應用程式以偵測封鎖標籤。

    TVSDK本身並不偵測封鎖標籤;您必須訂閱封鎖標籤,才能在資訊清單檔案剖析期間遇到標籤時收到通知。

  2. 為您的播放器已訂閱的標籤建立事件接聽程式。

    當您的播放器在前景(主要內容)或背景(替代內容)串流清單中訂閱(例如封鎖標籤)的標籤時,TVSDK會調度TimedMetadataEvent並為TimedMetadataEvent建立TimedMetadataObject

  3. 為前景和背景串流的計時中繼資料事件實施處理常式。

    在這些處理常式中,從計時中繼資料事件物件取得封鎖期的開始和結束時間。

  4. 準備MediaPlayer以備封鎖。

    MediaPlayer進入PREPARED狀態時,可計算並準備封鎖範圍,並在MediaPlayer對象上設定它們。

  5. 對於播放頭位置的每次更新,請檢查TimedMetadataObjects的清單。

    這是您的播放器偵測封鎖期開始和結束的地方,並追蹤封鎖期發生的時間。

  6. 建立在封鎖期開始和結束時切換內容的方法。

    當封鎖期開始時,將主要內容切換至背景,並將替代內容切換為主串流。 繼續擷取並剖析背景中的原始資訊清單,並持續檢查「封鎖結束」標籤,如此當封鎖結束時,播放器就可重新加入原始串流。

本頁內容