處理動態廣告插播串流。這個類別會管理與 DAI 伺服器的互動、處理追蹤 Ping,以及發出串流和廣告事件。
| 建構函式 | |
|---|---|
constructor
|
|
| 方法 | |
|---|---|
add
|
為指定事件類型新增監聽器。 |
content
|
針對指定串流時間,傳回不含廣告的內容時間。 |
focus
|
將焦點移至略過按鈕 (如有)。 |
get
|
如果使用者可以略過目前的廣告,則傳回
true 值。 |
load
|
要求 DAI SDK 載入廣告中繼資料,並發出
LOADED 串流事件。
|
on
|
傳遞處理過的中繼資料字典。 |
previous
|
傳回指定串流時間的前一個提示點。 |
process
|
處理串流的計時中繼資料。 |
remove
|
移除指定 StreamEvent 事件類型的監聽器。
|
replace
|
取代用於直播近期即將放送的廣告請求的所有廣告代碼參數。
|
request
|
使用提供的串流參數,請求載入 IMA DAI 的串流。
|
reset
|
重設串流管理員,並移除所有持續輪詢。 |
stream
|
傳回特定內容時間的含廣告總串流時間。 |
建構函式
constructor
new StreamManager(videoElement: HTMLVideoElement, adUiElement?: HTMLElement, uiSettings?: UiSettings): StreamManager
| 參數 | |
|---|---|
videoElement: HTMLVideoElement
|
播放影片的 HTML 影片元素。 |
|
廣告使用者介面算繪的元素。 |
|
要用於這項串流的 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: {
|
中繼資料字典。 |
previousCuePointForStreamTime
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: {
|
要替換的廣告代碼參數。必須包含字串值。 |
requestStream
requestStream(streamRequest: StreamRequest): void
使用提供的串流參數,要求載入 IMA DAI 的串流。
| 參數 | |
|---|---|
streamRequest:
StreamRequest
|
包含載入串流中繼資料的參數。 |
reset
reset(): void
重設串流管理員,並移除所有持續輪詢。
streamTimeForContentTime
streamTimeForContentTime(contentTime: number): number
傳回特定內容時間的含廣告總串流時間。傳回直播的指定內容時間。
| 參數 | |
|---|---|
contentTime: number
|
不含任何廣告的內容時間 (以秒為單位)。 |
| 傳回 | |
|---|---|
number
|
DAI 插入廣告後,與指定內容時間相應的總串流時間。 |