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 要用于此视频流的界面设置。
返回
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: {
  [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 插播广告后,与给定内容时间对应的总视频流时间。