乐橙云开发文档
控制台
更新日志
控制台
更新日志
快速入门
  • 开始使用
  • 核心概念
  • 开发指南
  • 设备能力与事件参考
  • API 参考
  • SDK 与工具
    • Android SDK
    • iOS SDK
    • 鸿蒙 SDK
    • PC SDK
    • 轻应用组件 ImouPlayer
      • 安装与初始化
      • 功能集成
      • API 参考
      • 示例工程
      • 更新日志
      • 版本迁移
      • 隐私与合规
    • 小程序插件与半屏小程序
    • 图片解密组件
    • 服务端示例与签名工具
    • Postman 集合
    • 资源下载
  • 行业方案
  • 平台与支持
本页目录
步骤
ImouPlayer - 组件说明
1. 基础用法
1.1 imou-player.js 引入
1.2 依赖库引入【重要且必须】 详见多线程模式配置
1.3 初始化 imouPlayer
2. npm 安装(可选)
3. 多线程模式配置
常见问题
相关参考

安装与初始化

安装与初始化

步骤

  1. 引入 imou-player.css / imou-player.js(见下文 1.1),或按 §2 通过 npm 集成。
  2. 将 WasmLib 放入项目 public 并配置路径(1.2,2024-12-31 后版本必做)。
  3. 使用 kitToken 等参数 初始化播放器(1.3);多线程播放再配置 §3 的 COOP/COEP。

ImouPlayer - 组件说明

凡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>
例:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-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 依赖库引入【重要且必须】 详见多线程模式配置

将 WasmLib 引入到自己项目的 public 下,imouPlayer初始化支持WasmLib访问路径配置,参数:WasmLibPath 根据自己项目可配置相对路径(默认)、绝对路径

1.3 初始化 imouPlayer

先由服务端调用 getKitToken 换取 kitToken,再填入下方 token(与 API 参考 · 初始化参数 类型一致:type/channelId/streamId 为 String)。

// 添加DOM容器
const player = new imouPlayer({
  id: "root",
  width: 800,
  height: 400,
  // 设备序列号
  deviceId: "7H0B18XXXXXXXX",
  channelId: "0",
  token: "Kt_hz00e4c3XXXXXXXXXXX", // kitToken
  // "1" 直播  "2" 录播
  type: "1",
  // 直播 "0" 高清  "1" 标清
  streamId: "0",
  // 录播 云录像 cloud 本地录像 localRecord 默认 云录像
  recordType: "cloud",
  WasmLibPath: "", // 默认相对路径,绝对路径可配置"/",具体路径根据项目public文件路径调整
  // 如果设备设置了自定义音视频加密密钥,则输入此密钥;
  // 如果设备只设置了设备密码,则输入设备密码;其他情况默认设备序列号。
  code: "xxxxxx",
});

2. npm 安装(可选)

若使用前端工程化构建,可从 npm 安装(包名以 资源下载 轻应用套件内 README 为准,常见为 imou-player):

npm install imou-player
import "imou-player/dist/imou-player.css";
import imouPlayer from "imou-player";
// 初始化参数同下文 1.3;WasmLib 仍须按 1.2 部署

未发布到 npm 的版本请直接使用资源包内 imou-player.js / imou-player.css(1.1)。

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");
    
    • nginx 服务
    add_header Cross-Origin-Opener-Policy "same-origin";
    add_header Cross-Origin-Embedder-Policy "require-corp";
    

常见问题

  1. 直播/录像播放、对讲等情况建立 websocket 连接时,返回的信息是 404?

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

  1. 发起对讲,设备端无声音?

有可能是通道音频格式是 ACC,但是 RTSP 信令返回的是 L16,目前通过 NVR 和 通道 IPC 对讲,不支持 L16。

  1. 页面放置多个播放器页面,页面卡顿问题

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

  1. 轻应用在移动端浏览器访问,ios音量打开后仍然没有声音

受ios权限控制,需关闭手机系统静音设置

  1. 移动端打开对讲无响应

请先开启浏览器麦克风权限

  1. 轻应用在移动端访问,设置了截图、屏幕录制功能配置,但是功能按钮未展示

IOS&Android微信小程序web-view、Android微信内置浏览器不支持截图、屏幕录制,功能按钮不展示

  1. 轻应用在移动端访问,受内存限制,屏幕录制文件最大限制100M

  2. 屏幕录制下载的录制文件无法播放,如何解决?

录制数据不足,建议录制时间大于5秒

  1. 屏幕录制结束后,未下载 MP4 文件到本地,如何解决?

可能是浏览器内存不足,文件保存失败;可重启浏览器,保留充足的内存环境

  1. 移动端在退出浏览器后仍然继续播放,如何解决?

可以通过监听页面可见性变化,进行暂停/恢复播放等操作,参考 资源下载 中轻应用直播套件内demos/vue3-mobile-demo/src/views/Player.vue

// 页面处于播放状态时,监听页面可见性变化
if (player.status.playing) {
  // 监听页面可见性变化(包括home键、切换应用等)
  document.addEventListener("visibilitychange", () => {
    if (document.hidden) {
      // 页面进入后台(包括点击home键)
      if (player) {
        player.pause();
      }
    } else {
      // 页面重新可见
      if (player) {
        player.start();
      }
    }
  });
}
  1. 接入过程中出现Uncaught SyntaxError: Unexpected token '<',WasmLib加载失败等报错信息

WasmLib路径引入错误,可通过参数配置WasmLibPath资源路径,如需使用绝对路径可配置:"/"。(具体路径根据项目public文件路径调整)

  1. 清晰度较高时,画面出现锯齿状

由于画面分辨率超过客户端的渲染分辨率,canvas渲染时部分像素被丢失导致。 解决方案:获取设备像素比 var pixelRatio = window.devicePixelRatio,并在初始化时配置【dpr: pixelRatio】

相关参考

  • 开发指南

商务合作:cloud_openteam@imou.com · 工单 · 获取帮助(公众号、小程序试用中心)

Copyright © 2015-2026 IMOU. All Rights Reserved. 浙ICP备16023676号

体验Demo
功能集成