乐橙云开发文档
快速入门
  • 文档综述
  • 云直播开发指南
  • 轻应用开发指南
  • 移动应用开发指南
  • 桌面应用开发指南
  • 消息推送
  • 云转存
  • 国标GB28181设备接入
  • HTTP接口
  • 服务支持
前往官网
快速入门
  • 文档综述
  • 云直播开发指南
  • 轻应用开发指南
  • 移动应用开发指南
  • 桌面应用开发指南
  • 消息推送
  • 云转存
  • 国标GB28181设备接入
  • HTTP接口
  • 服务支持
前往官网
快速入门
  • 文档综述

  • 云直播开发指南

  • 轻应用开发指南

    • 应用开发
    • 轻应用组件
      • ImouPlayer - 组件说明
        • 体验产品
        • 1. 基础用法
        • 1.1 imou-player.js 引入
        • 1.2 依赖库引入(重要且必须) 详见多线程模式配置
        • 1.3 初始化 imouPlayer
        • 1.4 imouPlayer 初始化参数说明
        • 1.4.1 handleError 播放错误回调
        • 1.5 getKitToken 接口协议说明
        • 详细说明
        • 请求地址
        • 传入参数说明
        • 样例输入
        • 2. imouPlayer 方法集合
        • 2.1 相关示例代码
        • 3. 多线程模式配置
        • 常见问题
  • 小程序对接指南

  • 移动应用开发指南

  • 桌面应用开发指南

  • 消息推送

  • 云转存

  • 国标GB28181设备接入

  • IOT物模型

  • HTTP接口

  • 服务支持

本页目录

轻应用组件

# ImouPlayer - 组件说明

# 体验产品

在线体验产品功能,之后可基于轻应用 Demo 进行二次开发。体验地址: 点击体验轻应用 (opens new window)

凡2024年12月31日以后的版本接入请关注 1.2 依赖库引入

# 1. 基础用法

# 1.1 imou-player.js 引入

// 需同步引入css样式文件
<link href="./imou-player.css" rel="stylesheet" />
<script src="./imou-player.js"></script>
1
2
3
例:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, intial-scale=1, maxium-scale=1, user-scalable=no" />
    <title>imouPlayer</title>
    <link href="./imou-player.css" rel="stylesheet" />
    <script src="./imou-player.js"></script>
  </head>
  <body>
    <!-- 在页面中提供一个空的div标签用于生成轻应用播放器元素 -->
    <div id="root"></div>
  </body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 1.2 依赖库引入(重要且必须) 详见多线程模式配置

将 WasmLib 引入到自己项目的 public 下

# 1.3 初始化 imouPlayer

// 添加DOM容器
const player = new imouPlayer({
  id: "root",
  width: 800,
  height: 400,
  // 设备序列号
  deviceId: "7H0B18XXXXXXXX",
  channelId: 0,
  token: "Kt_hz00e4c3XXXXXXXXXXX",
  // 1 直播  2 录播
  type: 1,
  // 直播 0 高清  1 标清  默认
  streamId: 0,
  // 录播 云录像 cloud 本地录像 localRecord 默认 云录像
  recordType: "cloud",
  // 如果设备设置了自定义音视频加密秘钥,则输入此秘钥;
  // 如果设备只设置了设备密码,则输入设备密码;其他情况默认设备序列号。
  code: "xxxxxx",
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 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 / Yes 播放类型: 1 直播(实时预览); 2 录像回放;
recordType String / No type=2 的情况下默认云录像回放;若 recordType=localRecord 则本地录像回放
beginTime String / No 回放开始时间   YYYY-MM-DD HH:mm:ss
endTime String / No 回放结束时间   YYYY-MM-DD HH:mm:ss
streamId String 0 No 清晰度: 0 高清 ;1 标清;
controls Boolean true No 播放器控制栏显示/隐藏
muted Boolean false No 静音
code String / No 设备视频解密秘钥,如果设备开启了视频加密,则必填。
如果设备设置了自定义音视频加密秘钥,则填此秘钥;
如果设备只设置了设备密码,则填设备密码;
其他情况默认设备序列号。
handleError Function / No 播放错误回调
videoTalk Boolean false No 视频对讲
# 1.4.1 handleError 播放错误回调
errCode errMsg
1001 解密失败,请重新输入秘钥
1002 设备响应异常,请检查后重试
2001 获取对讲地址失败,请检查设备
2002 对讲连接建立失败, 已存在语音对讲流源
2003 设备不支持视频对讲
2004 麦克风已被占用 或 无法获取麦克风权限
2005 摄像头已被占用 或 无法获取摄像头权限
2006 对讲失败,请稍后重试
2007 视频对讲,设备端已挂断
2008 对讲忙线
2009 对讲已关闭

# 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": "812e419af25bf773d8959d7dd82dc259",
    "time": 1626313677,
    "nonce": "1686f6f4-dec7-486e-93e3-6b2740577259"
  },
  "id": "0f935cb0-5ddc-44d4-9058-6b5fc928839e",
  "params": {
    "token": "At_000085fa18f0319046199b2138c04e54",
    "deviceId": "7B06****Z396E9",
    "channelId": "0",
    "type": "0"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 2. imouPlayer 方法集合

方法名 功能描述 使用示例
play 开始播放 player.play()
pause 暂停播放(实时预览暂停时,画面暂停但会继续出流消耗流量,重新播放时能立即恢复画面,不需要重新加载。适用于短时暂停) player.pause()
start 暂停后开始播放 player.start()
stop 结束播放(实时预览停止播放就立即停止出流,重新播放需要再次获取流地址后加载) player.stop()
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()

# 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;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

# 3. 多线程模式配置

imouPlayer JSSDK 支持 web 端无插件播放 H264/H265 编码的直播/录像。使用浏览器共享线程方案(SharedArrayBuffer),支持同时创建多个线程协同处理解码播放。默认使用多线程解码(谷歌浏览器 >= 91 版本;火狐浏览器 >= 97 版本;Edge 浏览器 >= 91 版本使用),不满足则使用单线程;

多线程模式在相同环境下有更好的性能表现,同时需要对服务进行跨域嵌入策略配置

你可以通过浏览 demo 快速上手 资源下载 中 轻应用直播套件内 demos/

  • 将 WasmLib 引入到自己项目的 public 下(重要且必须)

  • 配置前端服务,在响应头中添加 Cross-Origin-Opener-Policy 和 Cross-Origin-Embedder-Policy 配置:

    • node 服务
    response.setHeader("Cross-Origin-Opener-Policy", "same-origin");
    response.setHeader("Cross-Origin-Embedder-Policy", "require-corp");
    
    1
    2
    • nginx 服务
    add_header Cross-Origin-Opener-Policy "same-origin";
    add_header Cross-Origin-Embedder-Policy "require-corp";
    
    1
    2

# 常见问题

  1. 直播/录像播放、对讲等情况建立 websocket 连接时,返回的信息是 404?
    返回 404 可能存在流源超时无效的情况,实时录像、对讲、直播、录像下载的流地址,要避免提前请求,需要使用时,再触发接口获取流地址,避免流源超时无效,避免同时请求不同流源导致流源混乱。

  2. 发起对讲,设备端无声音?
    有可能是通道音频格式是 ACC,但是 RTSP 信令返回的是 L16,目前通过 NVR 和 通道 IPC 对讲,不支持 L16。

  3. 页面放置多个播放器页面,页面卡顿问题
    因需对码流进行解密,且渲染层使用 canvas,致使性能上会比纯 video 要求更高,但多个播放器同时存在时,若电脑性能不好或浏览器版本过低,多屏播放器就会出现卡顿问题。

应用开发
小程序对接开发
意见反馈
您的改进建议

鼠标选中内容,快速反馈问题

选中存在疑惑的内容,即可快速反馈问题,我们将尽快跟进处理。

不再提示 好的,我知道了

企业微信
企业微信二维码

扫码添加企业微信

在线沟通乐橙云对接方案及费用问题

  • 浅色模式
  • 深色模式
  • 阅读模式
您的改进建议
商务咨询