Class StreamManager


處理動態廣告插播串流。這個類別會管理與 DAI 伺服器的互動、處理追蹤 Ping,以及發出串流和廣告事件。
建構函式
constructor
方法
addEventListener
為指定事件類型新增監聽器。
contentTimeForStreamTime
針對指定串流時間,傳回不含廣告的內容時間。
focus
將焦點移至略過按鈕 (如有)。
getAdSkippableState
如果使用者可以略過目前的廣告,則傳回 true 值。
loadStreamMetadata
要求 DAI SDK 載入廣告中繼資料,並發出 LOADED 串流事件。
onTimedMetadata
傳遞處理過的中繼資料字典。
previousCuePointForStreamTime
傳回指定串流時間的前一個提示點。
processMetadata
處理串流的計時中繼資料。
removeEventListener
移除指定 StreamEvent 事件類型的監聽器。
replaceAdTagParameters
取代用於直播近期即將放送的廣告請求的所有廣告代碼參數。
requestStream
使用提供的串流參數,請求載入 IMA DAI 的串流。
reset
重設串流管理員,並移除所有持續輪詢。
streamTimeForContentTime
傳回特定內容時間的含廣告總串流時間。

建構函式


constructor

new StreamManager(videoElement: HTMLVideoElement, adUiElement?: HTMLElement, uiSettings?: UiSettings): StreamManager
參數
videoElement: HTMLVideoElement 播放影片的 HTML 影片元素。
Optional adUiElement: HTMLElement 廣告使用者介面算繪的元素。
Optional uiSettings: UiSettings 要用於這項串流的 UI 設定。
傳回
StreamManager

方法


addEventListener

addEventListener(type: Type | Type[], listener: ((event: StreamEvent) => void)): void
為指定事件類型新增監聽器。
參數
type: Type | Type[] 廣告事件類型或事件類型陣列。
listener: ((event: StreamEvent) => void) 廣告監聽器的回呼函式。

contentTimeForStreamTime

contentTimeForStreamTime(streamTime: number): number
針對指定串流時間,傳回不含廣告的內容時間。傳回直播的指定串流時間。
參數
streamTime: number 串流時間 (以秒為單位),包括內容和廣告。
傳回
number 指定串流時間的內容時間,不含廣告。

focus

focus(): void
如果畫面上有略過按鈕,焦點會移至該按鈕。如果沒有,焦點會放回互動式元素。

getAdSkippableState

getAdSkippableState(): boolean
如果使用者可以略過目前的廣告,則傳回 true 值。這個值變更時,StreamManager 類別會發出 SKIPPABLE_STATE_CHANGED 串流事件。
傳回
boolean true 如果使用者可以略過目前的廣告, false 否則為 false。

loadStreamMetadata

loadStreamMetadata(): void
要求 DAI SDK 載入廣告中繼資料,並發出 LOADED 串流事件。 從第三方影片併接工具擷取串流資訊清單時,請手動呼叫這個方法。這個方法僅適用於使用第三方影片併接工具的 Pod 放送 VOD 串流。

onTimedMetadata

onTimedMetadata(metadata: {
  [key: string]: string;
}): void
傳遞處理過的中繼資料字典。字典預期會使用確切的鍵 "TXXX",並以使用者定義的中繼資料字串做為值。如果播放器提供原始中繼資料,請改為呼叫 StreamManager.processMetadata 方法。
參數
metadata: {
  [key: string]: string;
}
中繼資料字典。

previousCuePointForStreamTime

previousCuePointForStreamTime(streamTime: number): CuePoint
傳回指定串流時間的前一個提示點。如果沒有先前的提示點,則會傳回 null。當使用者尋求返回廣告插播時,請呼叫這個方法,實作回溯等功能。
參數
streamTime: number 使用者要搜尋的串流時間。
傳回
CuePoint 指定串流時間的前一個提示點。

processMetadata

processMetadata(type: string, data: string | Uint8Array, timestamp: number): void
處理串流的計時中繼資料。如果影片播放器提供附有時間戳記的未剖析中繼資料,請使用這個方法。否則,請呼叫 StreamManager.onTimedMetadata
參數
type: string 中繼資料的類型。必須是 HLS 的 'ID3' 字串,或是 DASH 的事件訊息架構 ID URI。
data: string | Uint8Array 原始代碼資料。如果是 ID3,則必須是整個原始標記資料。如果是 DASH 事件訊息,這是訊息資料字串。
timestamp: number 處理資料的時間 (以秒為單位)。如果是 DASH,這個參數是事件訊息的開始時間。

removeEventListener

removeEventListener(type: Type, listener: ((event: StreamEvent) => void)): void
移除指定 StreamEvent 事件類型的監聽器。如要順利移除監聽器,傳遞至這個方法的監聽器參數,必須與先前傳遞至 addEventListener 方法的參數相同 (依參照)。
參數
type: Type 要移除監聽器的事件類型。
listener: ((event: StreamEvent) => void) 要移除的監聽器函式。

replaceAdTagParameters

replaceAdTagParameters(adTagParameters: {
  [key: string]: string;
}): void
取代近期即將放送的廣告請求所使用的所有廣告代碼參數。
參數
adTagParameters: {
  [key: string]: string;
}
要替換的廣告代碼參數。必須包含字串值。

requestStream

requestStream(streamRequest: StreamRequest): void
使用提供的串流參數,要求載入 IMA DAI 的串流。
參數
streamRequest: StreamRequest 包含載入串流中繼資料的參數。

reset

reset(): void
重設串流管理員,並移除所有持續輪詢。

streamTimeForContentTime

streamTimeForContentTime(contentTime: number): number
傳回特定內容時間的含廣告總串流時間。傳回直播的指定內容時間。
參數
contentTime: number 不含任何廣告的內容時間 (以秒為單位)。
傳回
number DAI 插入廣告後,與指定內容時間相應的總串流時間。