# EZUIKit-JavaScript-npm **Repository Path**: Ezviz-OpenBiz/EZUIKit-JavaScript-npm ## Basic Information - **Project Name**: EZUIKit-JavaScript-npm - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 25 - **Forks**: 5 - **Created**: 2024-03-25 - **Last Updated**: 2025-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # [EZUIKit-JavaScript-npm][ezuikit-js]     > 轻应用 npm 版本,降低接入难度,适配自定义 UI,适配主流框架 > 低延时预览,云存储回放,SD 卡回放 > 功能 API 丰富,如:播放控制,音频控制,视频截图,实时获取视频 OSDTime,视频录制,设备对讲,电子放大,全屏等
hls和flv 不在维护更新,后续版本中会被移除, flv 可以使用 ezuikit-flv, hls 可以使用 @ezuikit/player-hls
hls和flv 不在维护更新,后续版本中会被移除, flv 可以使用 ezuikit-flv, hls 可以使用 @ezuikit/player-hls
hls和flv 不在维护更新,后续版本中会被移除, flv 可以使用 ezuikit-flv, hls 可以使用 @ezuikit/player-hls
### 获取 ezuikit-js ```bash # npm npm install ezuikit-js # yarn yarn add ezuikit-js # pnpm pnpm add ezuikit-js ``` ### 引入 ezuikit-js ```js // >= v8.1.2 ESM import { EZUIKitPlayer } from "ezuikit-js"; // < v8.1.2 import EZUIKit from "ezuikit-js"; ``` #### 不支持 ESM (not support ESM) ```js // UMD import EZUIKit from "ezuikit-js/ezuikit.js"; // >= v8.1.2 CommonJS import { EZUIKitPlayer } from "ezuikit-js/index.js"; // < v8.1.2 CommonJS import EZUIKit from "ezuikit-js/index.js"; ``` #### 如果你使用原生方法,可以通过标签引用 ```html ``` ### 开始使用 - 初始化 > 基本使用 创建 DOM ```html ``` ## 播放器初始化 ### 直播 ```js import { EZUIKitPlayer } from "ezuikit-js"; const player = new EZUIKitPlayer({ id: "video-container", // 视频容器ID accessToken: "at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz", url: "ezopen://open.ys7.com/BD3957004/1.live", width: 600, height: 400, handleError: (err) => { if (err.type === "handleRunTimeInfoError" && err.data.nErrorCode === 5) { // 加密设备密码错误 } }, }); ``` ### 回放 ```js import { EZUIKitPlayer } from "ezuikit-js"; const player = new EZUIKitPlayer({ id: "video-container", // 视频容器ID width: 600, height: 400, accessToken: "at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz", url: "ezopen://open.ys7.com/BD3957004/1.rec", }); ``` #### 非正式版说明 alpha(功能测试)、beta(集成测试)为我们的非正式版本,可能存在功能或使用上的问题,若您遇到了任何问题,欢迎向我们反馈。 非正式版本没有 CDN 资源,使用时需要配置 `staticPath`,引用本地的解码库资源。 ### 使用示例 > 如果使用原生 js,可参考 demos => [base-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/base-demo) > 如果使用 react,可参考 demos => [react-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/react-demo) > 如果使用 react + vite,可参考 demos => [with-react-vite](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/with-react-vite) > 如果使用 next.js,可参考 demos => [with-next](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/with-next) > 如果使用 electron,可参考 demos => [with-electron](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/with-electron) > 如果使用 vue3,可参考 demos => [vue3-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/vue3-demo) > 如果使用 vue2.7,可参考 demos => [vue-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/vue-demo) > 如果使用 vue2.6,可参考 demos => [with-vue2.6](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/with-vue2.6) > > 如果使用 uniapp + vue3 ,可参考 demos => [with-uniapp-vue3](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/with-uniapp-vue3) > > 如果使用 uniapp + vue2 ,可参考 demos => [with-uniapp-vue2](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/with-uniapp-vue2) #### tips 为方便开发者快速接入 我们提供了测试 accessToken,测试播放地址,并提供了几种常用场景使用示例。你可以通过使用示例,使用测试播放地址,测试 accessToken,在你的应用快速接入。 测试播放地址: ezopen://open.ys7.com/BD3957004/1.live 你可以通过以下地址获取到测试 accessToken 获取测试 accessToken 用来播放上述测试播放地址。当前设备有可能下线或被移除了, 如果自己有设备优先使用自己的设备进行测试。 ### 轻应用 - 海外版本 > 轻应用支持向接入萤石云海外环境的设备发起取流播放,需要在初始化时配置海外服务域名,示例: ```js import { EZUIKitPlayer } from "ezuikit-js"; const player = new EZUIKitPlayer({ id: "playWind", width: 600, height: 400, template: "pcLive", url: "", accessToken: "", env: { domain: "https://iusopen.ezvizlife.com", // 北美地区 }, }); ``` 各地区的域名分别为: | 区域 | 域名 | | ------ | -------------------------------- | | 北美 | https://iusopen.ezvizlife.com | | 南美 | https://isaopen.ezvizlife.com | | 欧洲 | https://ieuopen.ezvizlife.com | | 新加坡 | https://isgpopen.ezvizlife.com | | 印度 | https://iindiaopen.ezvizlife.com | #### 最佳实践 tips 1. 我们在 v0.6.2 及以上版本持用户通过开启谷歌实验室特性启动多线程解码,多线程模式将大大提升解码效率,降低解码内存消耗。 > [开启多线程方式 1](https://open.ys7.com/help/384)(https://open.ys7.com/help/384) > [开启多线程方式 2](https://open.ys7.com/help/385)(https://open.ys7.com/help/385) 2. 视频解码库默认从开放平台远程拉取,你可以将解码库放到本地或者你的服务内,可以提升加载解码库速度。 > 使用本地解码库提升加载速度 开发者需要自己设置静态资源文件地址, 参考 `staticPath`的配置 ### 使用示例 #### 快速创建视频播放页面 基本使用: 基本使用示例 #### 前往[开放平台轻应用模板管理页](https://open.ys7.com/console/ezuikit/template.html)创建一个主题,可以动态配置你的播放主题,控件,示例展示了获取一个主题后使用示例。 自定义主题: 自定义主题示例 #### 你可以本地创建一个主题配置,可以本地配置你的播放主题,控件,示例展示了本地配置项使用示例。 本地主题配置: 本地主题配置示例 #### 我们提供了一些通用场景的主题,PC 端预览,PC 端回放,移动端预览,移动端回放,你也可以直接使用。 PC 端预览-固定主题: PC 端预览-固定主题示例 PC 端回放-固定主题: PC 端回放-固定主题示例 移动端预览-固定主题: 移动端预览-固定主题示例 移动端回放-固定主题: 移动端回放-固定主题示例 #### 同一个页面播放多个视频,可以参考: 单页面多实例(视频多窗口): 单页面多实例(视频多窗口)示例 #### 附录: 初始化参数说明参数名 | 类型 | 描述 | 是否必选 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | String | 播放器容器DOM的id | Y | ||||||||||||||||||||
accessToken | String | 授权过程获取的access_token | Y | ||||||||||||||||||||
url | String |
#### 直播
##### 标清
ezopen://open.ys7.com/${设备序列号}/{通道号}.live ##### 高清 ezopen://open.ys7.com/${设备序列号}/{通道号}.hd.live #### 回放 ##### sd 卡回放 初始化参数 url 值为: ezopen://open.ys7.com/${设备序列号}/{通道号}.rec?begin=yyyyMMddhhmmss ##### 云存储回放 初始化参数 url 值为: ezopen://open.ys7.com/${设备序列号}/{通道号}.cloud.rec?begin=yyyyMMddhhmmss 视频 ezopen 协议播放地址 详见:ezopen 协议 | Y | ||||||||||||||||||||
audio | boolean | 是否默认开启声音 true:打开(默认) false:关闭 | N | ||||||||||||||||||||
width | int | 视频宽度,默认值为容器容器DOM宽度 | Y | ||||||||||||||||||||
height | int | 视频高度,默认值为容器容器DOM高度 | Y | ||||||||||||||||||||
staticPath | string | 设置静态资源地址, 自定义可以自行下载 `ezuikit_static`放置在自己的服务器下, 设置 {staticPath: "/ezuikit_static"} | N | ||||||||||||||||||||
template | String |
| N | ||||||||||||||||||||
themeData | ThemeData |
themeData将主题数据本地化,设置本地数据,需要删除template参数 你可以通过themeData修改按钮位置,颜色,头部底部颜色等配置。 配置示例:本地主题配置示例 | N | ||||||||||||||||||||
plugin | String | 按需加载插件,可选值: talk:对讲,示例:plugin:["talk"] | N | ||||||||||||||||||||
handleSuccess | function | 自动播放成功回调 | N | ||||||||||||||||||||
handleError | function | 错误回调 | N | ||||||||||||||||||||
seekFrequency | function | 为避免频繁拖动播放异常,可设置模板回放时间轴拖动防抖间隔,默认值为2000(2秒),可取2000(2秒),3000(3秒),4000(4秒),5000(5秒) | N | ||||||||||||||||||||
language | String | 多语言 (zh | en), 默认zh (v8.0.8版本及以上支持) | N | ||||||||||||||||||||
debugDownloadData | boolean | 下载原始码流, 调试码流使用, 默认 false (v8.1.1版本及以上支持) | N | ||||||||||||||||||||
disableRenderPrivateData | boolean | 禁止渲染私有数据(如智能分析, 移动侦测, 火点信息等), 默认 false (v8.1.1版本及以上支持) | N | ||||||||||||||||||||
quality | 0 | 1 | 2 | 3 | 4 | 5 | 6 | pp | qp | 预览初始化支持指定清晰度进行播放, 默认 undefined (v8.1.5版本及以上支持), 0: 流畅; 1: 标清; 2: 高清; 3: 超清; 4: 极清; 5: 3K; 6: 4K ; "pp": "性能优先 (Performance Priority)"; "qp": "画质优先(Quality Priority)"。 如果没有命中,默认取上次的设置 | N | ||||||||||||||||||||
loggerOptions | {name: string, level: "INFO" | "LOG" | "WARN" | "ERROR" , showTime: boolean} | 本地日志设置, 默认值 {name: "ezuikit", level: "INFO", showTime: true}, 支持动态设置请参考 setLoggerOptions(options) (v8.1.9版本及以上支持) | N | ||||||||||||||||||||
streamInfoCBType | 0 | 1 | 流信息回调类型,监听 streamInfoCB 事件, 0 : 每次都回调(会影响性能), 1 : 只回调一次, 默认值 1 (v8.1.9版本及以上支持) | N | ||||||||||||||||||||
videoLevelList | Array<{ /** 清晰度 */level: number, /** 名称 */ name: string, /**1: 主码流,2: 子码流*/streamTypeIn: 1 | 2 }> | null | 自定义清晰度列表,默认null, 如果有值 sdk 内部不在进行获取, 为 null 使用接口获取的清晰度列表, videoLevelList.length === 0 不展示清晰度控件 sdk 内部不在进行获取, videoLevelList.length > 0 展示控件 sdk 内部不在进行获取 (v8.1.10版本及以上支持) | N |