处理动态广告插播视频流。此类用于管理与 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 视频元素。 |
|
广告界面呈现的元素。 |
|
要用于此视频流的界面设置。 |
| 返回 | |
|---|---|
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。 |
loadStreamMetadata
loadStreamMetadata(): void
请求 DAI SDK 加载广告元数据,并发出
LOADED 视频流事件。
当您从第三方
视频拼接器检索视频流清单时,请手动调用此方法。此方法仅适用于使用第三方视频
拼接器。
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 插播广告后,与给定内容时间对应的总视频流时间。 |