初始化代码

This commit is contained in:
2025-12-22 17:13:05 +08:00
parent ed0de08e3a
commit 1f7e9d401b
2947 changed files with 526137 additions and 0 deletions

429
uniapp/uni-app/node_modules/ezuikit-js/README.md generated vendored Normal file
View File

@@ -0,0 +1,429 @@
# [EZUIKit-JavaScript-npm][ezuikit-js]
>轻应用npm版本降低接入难度适配自定义UI适配主流框架
> 低延时预览云存储回放SD卡回放
> 功能API丰富播放控制音频控制视频截图实时获取视频OSDTime视频录制设备对讲电子放大全屏等
### 获取ezuikit-js
```
$ npm install ezuikit-js
```
### 引入ezuikit-js
```
import EZUIKit from 'ezuikit-js';
```
#### 如果你使用原生方法,可以通过标签引用
```
<script src="./ezuikit.js"></script>
```
### 开始使用 - 初始化
>基本使用
创建DOM
```
<div id="video-container"></div>
```
## 播放器初始化
### 直播
```
var player = new EZUIKit.EZUIKitPlayer({
id: 'video-container', // 视频容器ID
accessToken: 'at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz',
url: 'ezopen://open.ys7.com/G39444019/1.live',
width: 600,
height: 400,
})
```
### 回放
```
var player = new EZUIKit.EZUIKitPlayer({
id: 'video-container', // 视频容器ID
width: 600,
height: 400,
accessToken: 'at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz',
url: 'ezopen://open.ys7.com/G39444019/1.rec'
})
```
#### tips
为方便开发者快速接入
我们提供了测试accessToken,测试播放地址并提供了几种常用场景使用示例。你可以通过使用示例使用测试播放地址测试accessToken在你的应用快速接入。
<b>测试播放地址:</b> ezopen://open.ys7.com/G39444019/1.live
你可以通过以下地址获取到测试accessToken <a href="https://open.ys7.com/jssdk/ezopen/demo/token" target="_blank">获取测试accessToken</a> 用来播放上述测试播放地址。
### 使用示例
<b>基本使用:</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/base.html" target="_blank">基本使用示例</a>
<b>自定义主题:</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/template.html" target="_blank">自定义主题示例</a>
<b>本地主题配置:</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/themeData.html" target="_blank">本地主题配置示例</a>
<b>PC端预览-固定主题:</b>
<a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/pcLive.html" target="_blank">PC端预览-固定主题示例</a>
<b>PC端回放-固定主题:</b>
<a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/pcRec.html" target="_blank">PC端回放-固定主题示例</a>
<b>移动端预览-固定主题:</b>
<a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/mobileLive.html" target="_blank">移动端预览-固定主题示例</a>
<b>移动端回放-固定主题:</b>
<a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/mobileRec.html" target="_blank">移动端回放-固定主题示例</a>
<b>单页面多实例(视频多窗口)</b>
<a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/multi.html" target="_blank">单页面多实例(视频多窗口)示例</a>
#### 附录: 初始化参数说明
<table>
<tr><th>参数名</th><th>类型</th><th>描述</th><th>是否必选</th></tr>
<tr><td>id</td><td>String</td><td>播放器容器DOM的id</td><td>Y</td></tr>
<tr><td>accessToken</td><td>String</td><td>授权过程获取的access_token</td><td>Y</td></tr>
<tr><td>url</td><td>String</td><td>
#### 直播
##### 标清
ezopen://open.ys7.com/${设备序列号}/{通道号}.live<br/>
##### 高清
ezopen://open.ys7.com/${设备序列号}/{通道号}.hd.live<br/>
#### 回放
##### sd卡回放
初始化参数 url值为<br/>
ezopen://open.ys7.com/${设备序列号}/{通道号}.rec?begin=yyyyMMddhhmmss
##### 云存储回放
初始化参数 url值为<br/>
ezopen://open.ys7.com/${设备序列号}/{通道号}.cloud.rec?begin=yyyyMMddhhmmss
视频ezopen协议播放地址 详见:<a href="http://open.ys7.com/doc/zh/readme/ezopen.html" target="_blank">ezopen协议</a> </td><td>Y</td></tr>
<tr><td>audio</td><td>int</td><td>是否默认开启声音 1打开默认 0关闭 </td><td>N</td></tr>
<tr><td>width</td><td>int</td><td>视频宽度默认值为容器容器DOM宽度 </td><td>Y</td></tr>
<tr><td>height</td><td>int</td><td>视频高度默认值为容器容器DOM高度</td><td>Y</td></tr>
<tr><td>template</td><td>String</td><td>
<table style="display:inline-block;width:700px">
<tr><th>模板值</th><th>描述</th></tr>
<tr><td>simple</td><td>极简版 *固定模板 仅包含视频播放窗口,创建实例后通过方法集控制视频播<br />放相关功能</td></tr>
<tr><td>standard</td><td>标准版; *固定模板 包含视频窗口,叠加了停止,录制,全屏控件(通过<br />控件快捷调用方法集合控制视频播放相关功能,但你仍然可以通过方法集直接控制视频播放相关功<br />能。下同)</td></tr>
<tr><td>security</td><td>安防版(预览回放); *固定模板 包含视频窗口,叠加了录制,全屏控件,<br />标清/高清切换,预览录制切换控件*</td></tr>
<tr><td>voice</td><td>语音版; *固定模板 包含视频窗口,叠加了录制,全屏控件,语音播报,语音<br />对讲控件*</td></tr>
<tr><td>pcLive</td><td> *固定模板 按钮列表颜色底部头部背景色固定可用于pc端预览如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用<br />themeData本地配置*</td></tr>
<tr><td>pcRec</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定, 可用于pc端回放如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}}或者使用themeData<br />本地配置*</td></tr>
<tr><td>mobileLive</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定,可用于移动端预<br />览,如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}}或者使用themeData<br />本地配置*</td></tr>
<tr><td>mobileRec</td><td>*固定模板 按钮列表,颜色,底部头部背景色固定, 可用于移动端回放,<br />如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}}或者使用themeData<br />本地配置*</td></tr>
<tr><td>{{自定义themeId}}</td><td>(建议使用)开放平台提供了查询账号下主题列表,增加主题<br />,修改主题,删除主题接口。<br />你可以通过调用开放平台提供的接口自定义创建多个主题根据主题Id动<br />态渲染头部,底部样式,按钮隐藏显示,排布及按钮样式<br />
<a href="https://resource.eziot.com/group2/M00/00/79/CtwQFmI8d_mAC8-eAAA1PBGvsds71.json" target="_blank">接口示例下载请导入postman查看示例</a>
</td></tr>
<tr><td>theme</td><td>自定义主题,<a href="https://open.ys7.com/console/ezopenIframe.html" target="_blank">开放平台控制台配置</a><br />v0.3.0版本及以上支持,建议使用 自定义themeId或者使用themeData本地<br />配置);</td></tr>
</table>
</td></tr>
<tr><td>themeData</td><td>Object</td><td>
themeData将主题数据本地化设置本地数据需要删除template参数 <br />
你可以通过themeData修改按钮位置颜色头部底部颜色等配置。
配置示例:
<pre><code>
{
"header": {
"color": "#1890ff",
"activeColor": "#FFFFFF",
"backgroundColor": "#000000",
"btnList": [
{
"iconId": "deviceID",
"part": "left",
"defaultActive": 0,
"memo": "顶部设备名称",
"isrender": 1
},
{
"iconId": "deviceName",
"part": "left",
"defaultActive": 0,
"memo": "顶部设备ID",
"isrender": 1
},
{
"iconId": "cloudRec",
"part": "right",
"defaultActive": 0,
"memo": "顶部设备ID",
"isrender": 0
},
{
"iconId": "rec",
"part": "right",
"defaultActive": 0,
"memo": "顶部设备ID",
"isrender": 0
}
]
},
"footer": {
"color": "#FFFFFF",
"activeColor": "#1890FF",
"backgroundColor": "#00000021",
"btnList": [
{
"iconId": "play",
"part": "left",
"defaultActive": 1,
"memo": "播放",
"isrender": 1
},
{
"iconId": "capturePicture",
"part": "left",
"defaultActive": 0,
"memo": "截屏按钮",
"isrender": 1
},
{
"iconId": "sound",
"part": "left",
"defaultActive": 0,
"memo": "声音按钮",
"isrender": 1
},
{
"iconId": "pantile",
"part": "left",
"defaultActive": 0,
"memo": "云台控制按钮",
"isrender": 1
},
{
"iconId": "recordvideo",
"part": "left",
"defaultActive": 0,
"memo": "录制按钮",
"isrender": 1
},
{
"iconId": "talk",
"part": "left",
"defaultActive": 0,
"memo": "对讲按钮",
"isrender": 1
},
{
"iconId": "hd",
"part": "right",
"defaultActive": 0,
"memo": "清晰度切换按钮",
"isrender": 1
},
{
"iconId": "webExpend",
"part": "right",
"defaultActive": 0,
"memo": "网页全屏按钮",
"isrender": 1
},
{
"iconId": "expend",
"part": "right",
"defaultActive": 0,
"memo": "全局全屏按钮",
"isrender": 1
}
]
}
}
</code></pre>
</td><td>N</td></tr>
<tr><td>plugin</td><td>String</td><td>按需加载插件,可选值: talk对讲示例plugin:["talk"] </td><td>N</td></tr>
<tr><td>handleSuccess</td><td>function</td><td>自动播放成功回调</td><td>N</td></tr>
<tr><td>poster</td><td>String</td><td>视频默认封面 版本号> v0.4.6 </td><td>N</td></tr>
</table>
### 方法调用
> 同步方法方式1
> 方法支持通过promise回调可通过回调方式执行下一步动作方式2
#### 开始播放
```
// 方式1
player.play();
// 方式2
player.play()
.then(()=>{
console.log("执行播放成功后其他动作");
});
```
#### 停止播放
```
// 方式1
player.stop();
// 方式2
player.stop()
.then(()=>{
console.log("执行停止成功后其他动作");
});
```
#### 开启声音
```
// 方式1
player.openSound();
// 方式2
player.openSound()
.then(()=>{
console.log("执行开启声音成功后其他动作");
});
```
#### 开始录制
```
// 方式1
player.startSave("唯一文件名");
// 方式2
player.startSave("唯一文件名")
.then(()=>{
console.log("执行开始录制成功后其他动作");
});
```
#### 停止录制并下载文件
```
// 方式1
player.stopSave();
// 方式2
player.stopSave()
.then(()=>{
console.log("执行停止录制成功后其他动作");
});
```
#### 抓图
```
// 方式1 - 下载到本地
player.capturePicture("文件名");
// 方式2 - 返回base64格式
const capCallback = (data) => {
console.log("data",data)
}
player.capturePicture('default',capCallback)
```
#### 开始对讲
```
player.startTalk();
```
#### 结束对讲
```
player.stopTalk();
```
#### 全屏
```
player.fullScreen();
```
#### 取消全屏
```
player.cancelFullScreen();
```
#### 获取OSD时间
```
player.getOSDTime()
.then((time)=>{
console.log("获取到的当前播放时间", time);
});
```
#### 切换地址播放
> 可用于在播放中切换设备,切换播放参数,以及直播切换回放等
```
player.changePlayUrl(options)
.then(()=>{
console.log("切换成功")
});
```
options参数说明
|参数名|类型|描述|是否必选|
|:--|:--|:--|:--|
|type| String| 播放地址类型,"live":预览,"rec"回放“cloud.rec”云存储回放| Y|
|accessToken| String| 授权过程获取的access_token| Y|
|deviceSerial | String | 设备序列号,存在英文字母的设备序列号,字母需为大写 | Y |
|channelNo | int | 通道号 | Y |
|hd | boolean | 是否为高清 true-主码流(高清) false-子码流(标清) | Y |
|validCode |String| 设备验证码(加密设备播放需要输入验证码) |Y|
|begin| String | type类型为回放有效开始时间 格式为“YYYYMMDDHHmmss” |N|
|end| String | type类型为回放有效结束时间 格式为 “YYYYMMDDHHmmss” |N|
#### 设置封面
>你可以在初始化时通过参数poster设置默认封面
>实例初始化后可以调用设置封面方法再次更改封面
```
player.setPoster(pictureUrl)
.then(()=>{
console.log("更改封面成功");
});
```
#### 开启电子放大
```
// 方式1
player.enableZoom();
// 方式2
player.enableZoom()
.then(()=>{
console.log("开启电子放大成功");
});
```
#### 关闭电子放大
```
// 方式1
player.closeZoom();
// 方式2
player.closeZoom()
.then(()=>{
console.log("关闭电子放大成功");
});
```
#### 重置画面宽高
```
player.reSize(width, height);
```
### 使用示例
> 如果使用原生js可参考demos => base-demo
> 如果使用react可参考demos => react-demo
> 如果使用vue可参考demos => vue-demo