StreamManager
处理动态广告插播串流。它会管理与 DAI 后端的交互,处理跟踪 ping,以及将数据流和广告事件转发给发布商。此管理器不会继承 BaseAdsManager,因为它不是特定广告的管理器,而是整个广告串的管理器
构造函数
StreamManager
new StreamManager(videoElement, adUiElement, uiSettings)
构造函数。
参数 |
|
---|---|
videoElement |
将发生播放的 HTML 视频元素。 值不得为 null。 |
adUiElement |
可选 用于容纳广告界面元素的 HTML 元素。此元素的高度和宽度应与视频播放画面相同,并且应直接叠加在其上。如果未提供,系统将不会显示任何界面,也不会请求需要界面的广告(例如可跳过的广告)。 |
uiSettings |
可选 要为此串流使用的界面设置。 值不得为 null。 |
- 抛出
-
输入参数不符合要求时。
属性
clickElement
非 null HTMLElement
clickElement
非 null HTMLElement
streamMonitor
非 null PodServingStreamMonitor
方法
addEventListener
addEventListener(type, listener) 会返回 void
为指定事件类型添加监听器。
参数 |
|
---|---|
类型 |
字符串 要监听的事件的类型。 |
监听器 |
function(non-null StreamEvent) 每当发生此类事件时调用的函数。 |
- 返回
-
void
contentTimeForStreamTime
contentTimeForStreamTime(streamTime) 返回数字
返回给定直播时长在不含广告的情况下的内容时长。返回直播的给定直播时间。
参数 |
|
---|---|
streamTime |
数值 插入广告后的在线播放时长(以秒为单位)。 |
- 返回
-
number
移除广告后与给定直播时间对应的内容时间。
焦点
focus() 返回 void
将焦点移至跳过按钮(如果有)。如果没有,则会将焦点放在互动元素(包括图标或互动广告素材)上。
- 返回
-
void
getAdSkippableState
getAdSkippableState() 返回布尔值
如果广告目前可以跳过,则返回 true。当此值发生变化时,StreamManager
会触发 StreamEvent.SKIPPABLE_STATE_CHANGED
事件。
- 返回
-
boolean
如果广告目前可以跳过,则为 true,否则为 false。
loadStreamMetadata
loadStreamMetadata() 返回 void
请求 SDK 加载广告元数据,然后广播 StreamEvent.LOADED。 从第三方视频拼接工具检索到直播清单后,应手动触发此操作。此字段仅用于通过第三方视频拼接工具为视频点播投放内容,对于其他串流请求,此字段无效。
- 返回
-
void
onTimedMetadata
onTimedMetadata(metadata) 返回 void
传入经过处理的元数据的字典。该字典预期键为“TXXX”,值为用户定义的元数据字符串。
如果您的播放器提供原始元数据,请改为调用 StreamManager.processMetadata
。
参数 |
|
---|---|
元数据 |
(具有字符串属性的 null 或非 null 对象) 元数据字典。 |
- 返回
-
void
previousCuePointForStreamTime
previousCuePointForStreamTime(streamTime) returns (null or CuePoint)
返回给定直播时间的上一个 cue 点。如果不存在此类 cuepoint,则返回 null。此方法用于实现“快速返回”等功能,并在发布商检测到用户快进时调用,以便将用户返回到广告插播时间点。
参数 |
|
---|---|
streamTime |
数值 跳转到的直播时间。 |
- 返回
-
(null or non-null CuePoint)
给定直播时间的上一个 cue 点。
processMetadata
processMetadata(type, data, timestamp) 返回 void
处理直播的定时元数据。如果您的视频播放器提供未解析的元数据以及时间戳,请使用此方法;否则,请调用 StreamManager.onTimedMetadata
。
参数 |
|
---|---|
类型 |
字符串 元数据的类型。对于 HLS,必须为“ID3”;对于 DASH,必须为事件消息架构 ID URI。 |
数据 |
(字符串或非 null Uint8Array) 原始代码数据。对于 ID3,必须是完整的原始标记数据。对于 DASH 事件消息,这是消息数据字符串。 |
时间戳 |
数值 应处理数据的时间(以秒为单位)。 对于 DASH,这是事件消息的开始时间。 |
- 返回
-
void
removeEventListener
removeEventListener(type, listener) 会返回 void
移除给定事件类型的监听器。监听器函数必须与之前传递给 addEventListener
的监听器函数相同。
参数 |
|
---|---|
类型 |
字符串 要移除监听器的事件类型。 |
监听器 |
function(non-null StreamEvent) 要移除的监听器函数。 |
- 返回
-
void
replaceAdTagParameters
replaceAdTagParameters(adTagParameters) 返回 void
替换即将针对直播视频流发出的广告请求使用的所有广告代码参数。
参数 |
|
---|---|
adTagParameters |
具有字符串属性的对象 新的广告代码参数。 必须具有字符串值。 值不得为 null。 |
- 返回
-
void
requestStream
requestStream(streamRequest) 返回 void
请求使用提供的串流参数加载串流。
参数 |
|
---|---|
streamRequest |
包含用于加载数据流元数据的参数。 值不得为 null。 |
- 返回
-
void
重置
reset() 会返回 void
重置数据流管理器并移除所有连续轮询。
- 返回
-
void
setClickElement
setClickElement(clickElement) 返回 void
设置广告点击元素。此元素在广告播放期间用作点击或点按接收器,并且可能会导致用户离开当前页面。此方法现已废弃,应改为将 adUiElement 传入 StreamManager。如果向 StreamManager 构造函数传递 adUiElement,此方法将变为无操作。
参数 |
|
---|---|
clickElement |
(null 或非 null 元素) 用作广告点击的元素。 |
- 已弃用
- 改为向 StreamManager 构造函数提供 adUiElement。
- 返回
-
void
streamTimeForContentTime
streamTimeForContentTime(contentTime) 返回数字
返回给定内容时长含广告的播放时长。返回直播的指定内容时间。
参数 |
|
---|---|
contentTime |
数值 不含任何广告的内容时长(以秒为单位)。 |
- 返回
-
number
插入广告后与给定内容时间对应的直播时间。