H5Player 基于 webpack/tapable 实现了播放过程的钩子函数,为接入方提供了在播放过程的介入可行性
名称 | 触发事件 | 回调参数 |
---|---|---|
afterPlayerInit | 播放器初始化完毕触发 | (player, playConfig) 播放器实例、播放配置参数 |
onChannelRender | 通道渲染 AI 参数回调 | (param: Frame['param'], renderer: PlayRender) 帧数据 AI 参数,渲染 dom 节点 |
afterLoaded | 成功获取到流数据连接 | (player, eventData) 播放器实例、返回的链接数据 |
afterReady | 播放就绪事件,用于用户调用播放 | (player, eventData) 播放器实例、返回的播放状态数据 |
beforePlay | 用户调用触发 play | (player, eventData) 播放器实例、下发播放的数据 |
afterPlay | 渲染器开始播放,状态机修改为 playing 状态 | (player, eventData) 播放器实例、下发播放的数据 |
beforePause | 用户调用触发 pause | (player, eventData) 播放器实例、下发播放的数据 |
afterPause | 渲染器暂停播放,状态机修改为 paused 状态 | (player, eventData) 播放器实例、回调的暂停数据 |
beforeStop | 用户调用触发 stop | (player, eventData) 播放器实例、下发播放的数据 |
afterStop | 渲染器停止播放,状态机修改为 stopped 状态 | (player, eventData) 播放器实例、回调停止的数据 |
beforeSeek | 用户调用触发 seek,状态为 seeking 状态 | (player, eventData) 播放器实例、下发播放的数据 |
afterSeek | seek 成功,状态机修改为 playing 状态 | (player, eventData) 播放器实例、回调的 seek 的数据 |
beforeDestroy | 用户调用触发 destroy | (player, eventData) 播放器实例、下发 destroy 的数据 |
onError | 错误回调事件 | (errorData, player) 标准的 errorData,播放器实例 |
onPlayEnded | 自动播放结束 | (player, eventData) 播放器实例、结束的通道信息数据 |
onLoading | 用于回调 loading 时的百分比信息和网速信息,直通和回放通用。 | (list, done) 播放器通道状态信息、是否加载数据完毕标志 |
loadingTimeout | 用于判断缓冲超时 (20s)。超时时长和 seek 超时时长保持一致。 | (list) |
startReconnect | 断线后,开始重连的 hook. | (player, eventData) 播放器实例、重连信息 |
reconnectSuccess | 断线后,重连成功的 hook. | (player, eventData) 播放器实例、重连信息 |
onVideoPlaceholder | 回放通道播放状态变更。与播放器状态需要区分,播放状态是指在播放过程中,通道是有流的播放状态或无流的空闲状态;可配合 placeholder 插件实现自定义无视频时遮罩 | (statusList) |
onTimeChange | 回放播放过程中主动推送时间。推送频率可在 config 中配置,默认 500ms。如果业务层需要时间轴平滑移动,可将频率 设置低些,特别是服务器回放的小文件。 | (params: [data]) 时间信息 |
onMediaInfo | 媒体信息回调,目前主要包括 timeList(网络流情况下业务层需要感知时长信息) | (player, eventData) 播放器实例、媒体信息 |
onMessage | 提示信息回调事件 | (code, message) 提示信息 |
onFramePlayNoData | 逐帧无数据事件 | (player, type) 播放器实例、逐帧类型(0:下一帧, 1:上一帧) |
onStreamTypeChange | 码流切换事件 | (player, eventData) 播放器实例、事件信息 |
onInputAudioDevicesChange | 音频输入设备改变事件 | (eventData, player) 事件信息、对讲实例 |
描述
播放器初始化后触发,目前只对直通实例生效
示例
注:player 即播放实例
回调参数
参数 | 描述 |
---|---|
player | 播放器实例 |
config | 渲染用参数 |
描述
播放器获取到媒体流地址后触发,此时并没有开始播放视频或者监听对讲。对直通播放器,回放播放器,监听对讲实例均生效。
示例
回调参数
参数 | 描述 |
---|---|
player | 播放器实例 |
eventData | 返回的链接数据 |
描述
播放器已准备好开始播放,支持直通、回放。
示例
回调参数
参数 | 描述 |
---|---|
player | 播放器实例 |
eventData | 返回的播放状态数据 |
描述
播放器播放通知 (play) 前触发。直通在调用 load 会自动播放,因此只有回放生效。
示例
回调参数
参数 | 描述 |
---|---|
player | 播放器实例 |
eventData | 下发播放的数据 |
描述
播放器获取到播放通知 (play) 后触发,回放生效。
示例
回调参数
参数 | 描述 |
---|---|
player | 播放器实例 |
eventData | 下发播放的数据 |
描述
播放器获取到暂停通知 (pause) 前触发,回放生效。
示例
回调参数
参数 | 描述 |
---|---|
player | 播放器实例 |
eventData | 下发播放的数据 |
描述
播放器获取到暂停通知 (pause) 后触发,回放生效。
示例
回调参数
参数 | 描述 |
---|---|
player | 播放器实例 |
eventData | 下发播放的数据 |
描述
视频停止前回调,回放生效。
示例
回调参数
参数 | 描述 |
---|---|
player | 播放器实例 |
eventData | 下发播放的数据 |
描述
播放器停止后触发。
示例
回调参数
timeData 类型为 Object,监听对讲才有此参数,结构如下:
参数 | 描述 |
---|---|
startTime | 开始时间,客户端 utc 时间戳,单位 毫秒。如果未开始,该值为 null。 |
endTime | 结束时间,客户端 utc 时间戳,单位 毫秒。 |
duration | 播放时长,单位 毫秒。如果未开始,该值为 null。 |
描述
用户调用触发 seek,状态为 seeking 状态,仅回放生效。
示例
回调参数
参数 | 类型 | 描述 |
---|---|---|
player | 播放器实例 | |
eventData | 下发播放的数据 |
描述
完成进度跳转 seek 后触发,仅回放生效。
示例
回调参数
参数 | 类型 | 描述 |
---|---|---|
timeData | Object | 时间数据,参考 afterStop。 |
注:seek 失败场景下走 onError 回调
描述
视频销毁前回调。
示例
回调参数
参数 | 描述 |
---|---|
player | 播放器实例 |
preventExecution | function,阻断函数,可用于阻止 destory 后续执行 |
描述
回放播放完成
示例
描述
错误回调,能监听回放,直通中产生的各种错误
示例
player.hooks.onError.tap('An error occurred', callback(errorInfo, player?));
回调参数
参数名 | 类型 | 描述 |
---|---|---|
errorInfo | Object | 其余信息 |
player | class | 播放器实例 |
详情参考 error-code.md
描述
直通断线后,开始重连的 hook.
示例
描述
直通断线后,重连成功的 hook.
示例
描述
回放通道播放状态变更。与播放器状态需要区分,播放状态是指在播放过程中,通道是有流的播放状态或无流的空闲状态;可配合 placeholder 插件实现自定义无视频时遮罩
示例
回调参数
参数 | 数据类型 | 描述 | |
---|---|---|---|
playersStatus | Object[] | 通道播放状态变化的集合 | |
playerStatus:Object | devId | String | 设备 Id |
channel | Number | 通道号 | |
status | String | 变化后的播放状态 | |
next | Function | 需要占位的回调函数 |
描述
用于回调 loading 时的百分比信息和网速信息,直通和回放通用。
注:直通模式下,不能通过 done 参数判断是否 loading 结束,需要判断 通道的 percent 是否等于 100,来取消单个通道的 loading
示例
回调参数
参数 | 数据类型 | 描述 | |
---|---|---|---|
loadingList | Object[] | loading 中的设备通道信息列表 | |
devId | string | 设备号 | |
channel | number | 通道号 | |
percent | number | 进度百分比,0-100 | |
network | number | 网速信息,单位 KB/s | |
done | boolean | 是否完成加载结束 loading |
描述
用于判断缓冲超时 ,超时时间按通用配置为准,默认 20s。
示例
回调参数
参数 | 数据类型 | 描述 | |
---|---|---|---|
deviceInfo | Object[] | 设备通道列表 | |
deviceInfo:Object | devId | String | 设备 Id |
channel | Number | 通道号 |
描述
回放播放过程中主动推送时间。推送频率可在 config 中配置,默认 500ms。
如果业务层需要时间轴平滑移动,可将频率 设置低些,特别是服务器回放的小文件。
示例
回调参数
参数 | 数据类型 | 描述 | |
---|---|---|---|
timeData | Object | ||
dateTime | String | 根据传入配置的时区格式化好的时间字符串,如 "2022-12-28 16:17:34"。该格式可在全局配置 config 中配置, 默认"YYYY-MM-DD HH:mm:ss" | |
utc | Number | utc 时间,单位秒,int。 | |
ms | Number | utc 秒之后的 毫秒数,取值 0-999. |
描述
给出当前播放器渲染帧的设备信息或 AI 信息
示例
回调参数
参数 | 数据类型 | 描述 |
---|---|---|
frame | object | 携带 AI 或设备信息的帧数据 |
chanPlayers | object | 当前渲染该数据帧的通道播放器 |
描述
媒体信息回传
示例
回调参数
参数 | 数据类型 | 描述 |
---|---|---|
player | class | 播放器实例 |
eventData | object | 当前渲染该数据帧的通道播放器 |
|-name | string | 数据类型名称:如 timeList |
|-data | object | 数据类型信息 |
描述
提示信息回调
示例
回调参数
参数 | 数据类型 | 描述 |
---|---|---|
code | string | 提示错误码 |
message | string | 提示描述 |
描述
逐帧无数据回调
示例
回调参数
参数 | 数据类型 | 描述 |
---|---|---|
player | class | 播放器实例 |
type | number | 逐帧类型。0-下一帧,1-上一帧 |
options | object | 其他参数。参考下表 |
options
参数 | 说明 |
---|---|
isFirst | 是否是第一帧 |
isLast | 是否是最后一帧 |
描述
播放器状态改变回调
示例
回调参数
参数 | 数据类型 | 描述 |
---|---|---|
player | class | 播放器实例 |
stateInfo | object | 参考下面 stateInfo 类型定义 |
state | string | 参考 播放器状态 |
stateInfo
描述
播放器码流切换回调
示例
回调参数
参数 | 数据类型 | 描述 |
---|---|---|
player | class | 播放器实例 |
eventData | object | 参考下面 TEventData 类型定义 |
TEventData
描述
播放器码流切换回调
示例
回调参数
参数 | 数据类型 | 描述 |
---|---|---|
eventData | object | 参考下面 TEventData 类型定义 |
player | class | 播放器实例 |
TEventData