此範例顯示在播放時間軸中加入TimeRange規格的建議方式。
TimeRange
規範清單(即TimeRange
類的實例)。TimeRange
規範集填充TimeRangeCollection
類的實例。TimeRangeCollection
實例獲取的元資料實例傳遞到replaceCurrentItem
方法(MediaPlayer
介面的一部分)。PlaybackEventListener#onPrepared
回呼觸發,以轉換為PREPARED狀態。play()
方法(MediaPlayer
介面的一部分),開始播放視訊。處理時間軸衝突:有時,播放時間軸上的某些TimeRange
規範會重疊。 例如,與TimeRange
規範對應的起始位置的值可能低於已放置的終止位置的值。 在此情況下,TVSDK會無訊息地調整違規TimeRange
規格的開始位置,以避免時間軸衝突。 通過此調整,新TimeRange
將比最初指定的短。 如果調整極端,以致於會導致持續時間為零毫秒的TimeRange
,TVSDK會無訊息地捨棄違規的TimeRange
規格。
當提供自訂廣告插播的TimeRange
規格時,TVSDK會嘗試將這些規格轉換為廣告插播內分組的廣告。 TVSDK會尋找相鄰的TimeRange
規格,並將它們叢集為個別的廣告插頁。 如果有時間範圍不與任何其他時間範圍相鄰,則會將它們轉換為包含單一廣告的廣告分段。
假設載入的媒體播放器項目指向VOD資產。 當您的應用程式嘗試載入中繼資料包含TimeRange
規格的媒體資源時,TVSDK會檢查此項,這些規格僅能用於自訂廣告標籤功能的內容。 如果基礎資產不是VOD類型,TVSDK程式庫會擲回例外。
處理自訂廣告標籤時,TVSDK會停用其他廣告解析機制(透過Adobe Primetime廣告決策(先前稱為Auditude)或其他廣告布建系統)。 您可以使用TVSDK提供的各種廣告解析器模組或自訂廣告標籤機制。 使用自訂廣告標籤API時,廣告內容會被視為已解析並置於時間軸上。
下列程式碼片段提供一個簡單範例,其中一組3個TimeRange
規格會以自訂廣告標籤放置在時間軸上。
// Assume that the 3 timerange specs are obtained through external means: CMS, etc.
// Use these 3 timerange specs to populate the TimeRangeCollection instance
var timeRanges:TimeRangeCollection = new TimeRangeCollection();
timeRanges.addTimeRange(new TimeRange(0,10000));
timeRanges.addTimeRange(new TimeRange(15000,20000));
timeRanges.addTimeRange(new TimeRange(25000,30000));
// create and configure a MediaResource instance
MediaResource mediaResource =
MediaResource.createFromUrl("www.example.com/video/test_video.m3u8",
timeRanges.toMetadata(null));