API 参考
API 参考
1.4 imouPlayer 初始化参数说明
| 参数名 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| id | String | / | Yes | 容器挂载 Dom 的 Id |
| width | Number | / | Yes | 容器宽度 |
| height | Number | / | Yes | 容器高度 |
| deviceId | String | / | Yes | 设备序列号 |
| channelId | String | / | Yes | 设备通道号 |
| token | String | / | Yes | 轻应用播放 token |
| type | String | 1 | Yes | 播放类型: 1:直播(实时预览); 2:录像回放; |
| recordType | String | cloud | No | type=2 时:cloud 云录像(默认)、localRecord 设备本地录像、nvrDisk NVR 磁盘录像 |
| beginTime | String | / | No | 回放开始时间 YYYY-MM-DD HH:mm:ss |
| endTime | String | / | No | 回放结束时间 YYYY-MM-DD HH:mm:ss |
| streamId | String | 0 | No | 清晰度:0 高清、1 标清。若 getEncryptKitStreamUrl 返回多档 resolutions,切换清晰度须同时传 imageSize 与 streamId(与取流结果一致) |
| muted | Boolean | false | No | 静音 |
| code | String | / | No | 设备视频解密密钥,如果设备开启了视频加密,则必填。 如果设备设置了自定义音视频加密密钥,则填此密钥; 如果设备只设置了设备密码,则填设备密码; 其他情况默认设备序列号。 |
| handleError | Function | / | No | 播放错误回调,详见1.4.1 handleError |
| handleCallBack | Function | / | No | 播放事件回调,详见1.4.2 handleCallBack |
| videoTalk | Boolean | false | No | 视频对讲 |
| controls | Boolean | true | No | 控件显示true/隐藏false |
| controlsConfig | Array | ["play", "volume", "talk", "capture", "videoRecord", "ptz", "resolution", "fullPageScreen", "fullScreen", "speed", "recordChange", "recordTimeLine","calendar","digitalZoom", "opticalZoom"] | No | 控件配置,配置项参考1.4.3controlsConfig配置 |
| controlsSize | Number | PC端:35;移动端:32 | No | 控件大小设置 |
| controlsColor | String | #ffffff | No | 控件颜色设置 |
| controlsActiveColor | String | #f18d00 | No | 控件高亮颜色设置 |
| templateMode | String | pc | No | UI模板配置 PC端:pc 移动端:mobile |
| title | String | 设备序列号-通道号 | No | 标题内容 |
| titleColor | String | #ffffff | No | 标题颜色 |
| WasmLibPath | String | "" | No | WasmLib资源访问路径,默认相对路径,绝对路径可以配置:"/",具体路径根据项目public文件路径调整 |
| dpr | Number | 0 | No | V1.3.0以后版本支持,消除监控画面清晰度超过当前终端的显示分辨率时产生的锯齿。默认为0,按照原始码流分辨率渲染。 |
1.4.1 handleError 播放错误回调
| errCode | errMsg |
|---|---|
| 1001 | 解密失败,请重新输入密钥 |
| 1002 | 设备响应异常,请检查后重试 |
| 2001 | 获取对讲地址失败,请检查设备 |
| 2002 | 对讲连接建立失败, 已存在语音对讲流源 |
| 2003 | 设备不支持视频对讲 |
| 2004 | 麦克风已被占用 或 无法获取麦克风权限 |
| 2005 | 摄像头已被占用 或 无法获取摄像头权限 |
| 2006 | 对讲失败,请稍后重试 |
| 2007 | 视频对讲,设备端已挂断 |
| 2008 | 对讲忙线 |
| 2009 | 对讲已关闭 |
1.4.2 handleCallBack 播放事件回调
| type | desc |
|---|---|
| playStart | 开始播放 |
| talkStart | 开始对讲 |
| talkEnd | 对讲结束 |
1.4.3 controlsConfig配置
controls 为true的情况下才生效
| type | desc |
|---|---|
| play | 播放/暂停 |
| volume | 声音开关 |
| talk | 对讲 |
| resolution | 清晰度切换 |
| capture | 抓图 |
| ptz | 云台 |
| videoRecord | 屏幕录制 |
| fullPageScreen | 网页全屏 |
| fullScreen | 全屏 |
| speed | 倍速 |
| recordChange | 云录像、本地录像切换 |
| recordTimeLine | 录像时间轴 |
| calendar | 日历 |
| digitalZoom | 电子变焦 |
| opticalZoom | 光学变焦(v1.3.9+;仅直播 type=1;与 digitalZoom 互斥;ability 含 ZoomFocus 时步进变焦,含 PTZ 时持续变焦;与 ptz 控件行为不同) |
1.5 getKitToken 接口协议说明
详细说明
获取轻应用播放 token;
注:
1、开发者私有云调用乐橙开放平台接口的协议的域名地址和签名计算说明请见:开发规范
2、kitToken 有效期为 2 小时,建议开发者在自身服务中针对 kitToken 缓存一小时处理,而不用每次调用开放平台接口获取。
请求地址
https://openapi.lechange.cn/openapi/getKitToken
传入参数说明
| 参数列表 | 说明 | 参数类型 | 是否必填 | 默认值 | 合法值 |
|---|---|---|---|---|---|
| token | 管理员 accessToken | String | 是 | accessToken 获取协议请参考:accessToken | |
| deviceId | 设备序列号 | String | 是 | ||
| channelId | 设备通道号 | String | 是 | ||
| type | 默认传 0 | String | 是 | 0:所有权限;1:实时预览;2:录像回放(云录像+本地录像);6:云台转动 |
样例输入
{
"system": {
"ver": "1.0",
"appId": "lc0****426c",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time": 1626313677,
"nonce": "1686f6f4-dec7-486e-93e3-6b2740577259"
},
"id": "0f935cb0-5ddc-44d4-9058-6b5fc928839e",
"params": {
"token": "<yourAccessToken>",
"deviceId": "7B06****Z396E9",
"channelId": "0",
"type": "0"
}
}
返回 data 字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
kitToken | String | 轻应用播放器 token 入参 |
expireTime | String / Number | 过期时间(以实现返回为准) |
样例输出
{
"result": {
"code": "0",
"msg": "操作成功。",
"data": {
"kitToken": "Kt_hz00e4c3XXXXXXXXXXX",
"expireTime": "1730000000"
}
},
"id": "0f935cb0-5ddc-44d4-9058-6b5fc928839e"
}
缓存与刷新策略见 管理 token 与上文 kitToken 有效期说明。
2. imouPlayer 方法集合
| 方法名 | 功能描述 | 使用示例 |
|---|---|---|
| play | 开始播放 | player.play() |
| pause | 暂停播放 | player.pause() |
| start | 暂停后开始播放 | player.start() |
| destroy | 结束播放同时销毁 DOM | player.destroy() |
| capture | 截图 | player.capture() |
| startTalk | 开始对讲 | player.startTalk() // 语音对讲 player.startTalk("video") // 视频对讲 |
| stopTalk | 结束对讲 | player.stopTalk() |
| volume | 设置音量(0/1) | player.volume(0) // 关闭音量 player.volume(1) // 打开音量 |
| fullScreen | 全屏 | player.fullScreen() |
| exitFullScreen | 退出全屏 | player.exitFullScreen() |
| startRecord | 开始屏幕录制 | player.startRecord() |
| stopRecord | 结束屏幕录制 | player.stopRecord() |
| setSpeed | 录像倍速播放(0.5/1/2/4/8/16/32),本地录像不支持 32 倍速 | player.setSpeed(2) |
| answerVideoTalk | 接收到设备发起可视对讲,进入接听/拒接状态 | player.answerVideoTalk() |
| zoomIn | 电子变焦-放大 | player.zoomIn() |
| zoomOut | 电子变焦-缩小 | player.zoomOut() |
| resetZoom | 电子变焦-重置 | player.resetZoom() |
| opticalZoomIn | 光学变焦放大:ZoomFocus 点击步进 +10(0~100);PTZ 开始持续放大 | player.opticalZoomIn() |
| opticalZoomOut | 光学变焦缩小:ZoomFocus 步进 -10;PTZ 开始持续缩小 | player.opticalZoomOut() |
| getCurrentPlayOsdTime | 获取当前录像播放的时间点,与内部时间轴一致,返回字段包括: seekBeginTime 表示拖动的时间轴,格式 yyyy-MM-dd HH:mm:ss; dayOffsetSec 表示当天秒偏移,即当前正在播放的画面距当天零点的秒数; dayOffsetTime 表示当前正在播放的画面时分秒; isGB28181:是否国标设备,仅国标设备返回。国标设备当前录像时间默认从零点开始。 仅支持录像播放。如果 loading/未播/直播时直接返回 {}。 建议调用 ≤1 次/秒 | player.getCurrentPlayOsdTime() → { seekBeginTime, dayOffsetSec, dayOffsetTime, isGB28181? } |
2.1 相关示例代码
const text = e.target.innerText;
switch (text) {
case "播放":
player.play();
break;
case "暂停":
player.pause();
break;
case "暂停后开始播放":
player.start();
break;
case "截图":
player.capture();
break;
case "全屏":
player.fullScreen();
break;
case "退出全屏":
player.exitFullScreen();
break;
case "声音-打开":
player.volume(1);
break;
case "声音-关闭":
player.volume(0);
break;
case "语音对讲-开始对讲":
player.startTalk();
break;
case "语音对讲-结束对讲":
player.stopTalk();
break;
case "2倍速":
player.setSpeed(2);
break;
default:
break;
}