Skip to content

Commit 03ef0a2

Browse files
committed
merge master
2 parents 8bb0fe0 + 50eb236 commit 03ef0a2

File tree

8 files changed

+252
-90
lines changed

8 files changed

+252
-90
lines changed

CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
## v8.0.13-alpha.1 (20204-10-17)
1+
2+
## v8.1.0 (2024-11-04)
3+
#### Feat
4+
- 完善取流埋点上报内容,错误上报
5+
6+
#### Fixed
7+
- 修复偶现初始化成功后无法播放的问题
8+
9+
10+
## v8.0.13-alpha.1 (2024-10-17)
211

312
#### Fixed
413

README.md

Lines changed: 70 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ var player = new EZUIKit.EZUIKitPlayer({
6161
id: "video-container", // 视频容器ID
6262
accessToken:
6363
"at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz",
64-
url: "ezopen://open.ys7.com/G39444019/1.live",
64+
url: "ezopen://open.ys7.com/BD3957004/1.live",
6565
width: 600,
6666
height: 400,
6767
handleError: (err) => {
@@ -81,21 +81,69 @@ var player = new EZUIKit.EZUIKitPlayer({
8181
height: 400,
8282
accessToken:
8383
"at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz",
84-
url: "ezopen://open.ys7.com/G39444019/1.rec",
84+
url: "ezopen://open.ys7.com/BD3957004/1.rec",
8585
});
8686
```
8787

88+
#### 非正式版说明
89+
90+
alpha(功能测试)、beta(集成测试)为我们的非正式版本,可能存在功能或使用上的问题,若您遇到了任何问题,欢迎向我们反馈。
91+
92+
非正式版本没有CDN资源,使用时需要配置 `staticPath`,引用本地的解码库资源。
93+
94+
### 使用示例
95+
96+
> 如果使用原生 js,可参考 demos => [base-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/base-demo)
97+
98+
> 如果使用 react,可参考 demos => [react-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/react-demo)
99+
100+
> 如果使用 react + vite,可参考 demos => [with-react-vite](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/with-react-vite)
101+
102+
> 如果使用 vue2,可参考 demos => [vue-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/vue-demo)
103+
104+
> 如果使用 vue3,可参考 demos => [vue3-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/vue3-demo)
105+
88106
#### tips
89107

90108
为方便开发者快速接入
91109

92110
我们提供了测试 accessToken,测试播放地址,并提供了几种常用场景使用示例。你可以通过使用示例,使用测试播放地址,测试 accessToken,在你的应用快速接入。
93111

94-
<b>测试播放地址:</b> ezopen://open.ys7.com/G39444019/1.live
112+
<b>测试播放地址:</b> ezopen://open.ys7.com/BD3957004/1.live
95113

96114
你可以通过以下地址获取到测试 accessToken <a href="https://open.ys7.com/jssdk/ezopen/demo/token" target="_blank">获取测试 accessToken</a> 用来播放上述测试播放地址。
97115
当前设备有可能下线或被移除了, 如果自己有设备优先使用自己的设备进行测试。
98116

117+
### 轻应用 - 海外版本
118+
119+
> 轻应用支持向接入萤石云海外环境的设备发起取流播放,需要在初始化时配置海外服务域名,示例:
120+
121+
```js
122+
EZOPENDemo = new EZUIKit.EZUIKitPlayer({
123+
id: 'playWind',
124+
width: 600,
125+
height: 400,
126+
template:"pcLive",
127+
url: '',
128+
accessToken: '',
129+
env:{
130+
domain: "https://iusopen.ezvizlife.com" // 北美地区
131+
}
132+
});
133+
```
134+
135+
各地区的域名分别为:
136+
137+
| 区域 | 域名 |
138+
| --- | -------------------------------- |
139+
| 北美 | https://iusopen.ezvizlife.com |
140+
| 南美 | https://isaopen.ezvizlife.com |
141+
| 欧洲 | https://ieuopen.ezvizlife.com |
142+
| 新加坡 | https://isgpopen.ezvizlife.com |
143+
| 印度 | https://iindiaopen.ezvizlife.com |
144+
145+
146+
99147
#### 最佳实践 tips
100148

101149
1. 我们在 v0.6.2 及以上版本持用户通过开启谷歌实验室特性启动多线程解码,多线程模式将大大提升解码效率,降低解码内存消耗。
@@ -172,8 +220,8 @@ ezopen://open.ys7.com/${设备序列号}/{通道号}.rec?begin=yyyyMMddhhmmss
172220
ezopen://open.ys7.com/${设备序列号}/{通道号}.cloud.rec?begin=yyyyMMddhhmmss
173221
视频 ezopen 协议播放地址 详见:<a href="https://open.ys7.com/help/23" target="_blank">ezopen 协议</a> </td><td>Y</td></tr>
174222

175-
<tr><td>audio</td><td>boolean</td><td>是否默认开启声音 true:打开(默认) false:关闭 </td><td>N</td></tr>
176-
<tr><td>width</td><td>int</td><td>视频宽度,默认值为容器容器DOM宽度 </td><td>Y</td></tr>
223+
<tr><td>audio</td><td>boolean</td><td>是否默认开启声音 true:打开(默认) false:关闭 </td><td>N</td></tr>
224+
<tr><td>width</td><td>int</td><td>视频宽度,默认值为容器容器DOM宽度 </td><td>Y</td></tr>
177225
<tr><td>height</td><td>int</td><td>视频高度,默认值为容器容器DOM高度</td><td>Y</td></tr>
178226
<tr><td>staticPath</td><td>string</td><td>设置静态资源地址, 自定义可以自行下载 `ezuikit_static`放置在自己的服务器下, 设置 {staticPath: "/ezuikit_static"} </td><td>N</td></tr>
179227
<tr><td>template</td><td>String</td><td>
@@ -187,9 +235,9 @@ ezopen://open.ys7.com/${设备序列号}/{通道号}.cloud.rec?begin=yyyyMMddhhm
187235

188236
<tr><td>security</td><td>安防版(预览回放); *固定模板 包含视频窗口,叠加了录制,全屏控件,<br />标清/高清切换,预览录制切换控件*</td></tr>
189237
<tr><td>voice</td><td>语音版; *固定模板 包含视频窗口,叠加了录制,全屏控件,语音播报,语音<br />对讲控件*</td></tr>
190-
<tr><td>pcLive</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定,可用于pc端预览,如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用<br />themeData本地配置*</td></tr>
191-
<tr><td>pcRec</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定, 可用于pc端回放,如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
192-
<tr><td>mobileLive</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定,可用于移动端预<br />览,如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
238+
<tr><td>pcLive</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定,可用于pc端预览,如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用<br />themeData本地配置*</td></tr>
239+
<tr><td>pcRec</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定, 可用于pc端回放,如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
240+
<tr><td>mobileLive</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定,可用于移动端预<br />览,如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
193241
<tr><td>mobileRec</td><td>*固定模板 按钮列表,颜色,底部头部背景色固定, 可用于移动端回放,<br />如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
194242
<tr><td>自定义themeId</td><td>自定义主题,<a href="https://open.ys7.com/console/ezuikit/template.html" target="_blank">前往开放平台控制台配置页面获取</a><br />(v0.6.2版本及以上支持,建议使用 自定义themeId,或者使用themeData本地<br />配置);</td></tr>
195243
</table>
@@ -499,17 +547,17 @@ player.changePlayUrl(options).then(() => {
499547

500548
options 参数说明
501549

502-
| 参数名 | 类型 | 是否必选 | 默认值 | 描述 |
503-
| :----------- | :------ | :------- | :----------- | :-------------------------------------------------------------- |
504-
| type | String | Y | | 播放地址类型,"live":预览,"rec":回放;“cloud.rec”:云存储回放 |
505-
| deviceSerial | String | Y | | 设备序列号,存在英文字母的设备序列号,字母需为大写 |
506-
| channelNo | int | Y | | 通道号 |
507-
| accessToken | String | N | 初始化时获取 | 授权过程获取的 access_token |
508-
| hd | boolean | N | 初始化时获取 | 是否为高清 true-主码流(高清) false-子码流(标清) |
509-
| validCode | String | N | 初始化时获取 | 设备验证码(加密设备播放需要输入验证码) |
510-
| validCode | String | N | 初始化时获取 | 设备验证码(加密设备播放需要输入验证码) |
511-
| begin | String | N | 初始化时获取 | type 类型为回放有效,开始时间 格式为“YYYYMMDDHHmmss” |
512-
| end | String | N | 初始化时获取 | type 类型为回放有效,结束时间 格式为 “YYYYMMDDHHmmss” |
550+
| 参数名 | 类型 | 是否必选 | 默认值 | 描述 |
551+
|:------------ |:------- |:---- |:------ |:------------------------------------------- |
552+
| type | String | Y || 播放地址类型,"live":预览,"rec":回放;“cloud.rec”:云存储回放 |
553+
| deviceSerial | String | Y || 设备序列号,存在英文字母的设备序列号,字母需为大写 |
554+
| channelNo | int | Y || 通道号 |
555+
| accessToken | String | N | 初始化时获取 | 授权过程获取的 access_token |
556+
| hd | boolean | N | 初始化时获取 | 是否为高清 true-主码流(高清) false-子码流(标清) |
557+
| validCode | String | N | 初始化时获取 | 设备验证码(加密设备播放需要输入验证码) |
558+
| validCode | String | N | 初始化时获取 | 设备验证码(加密设备播放需要输入验证码) |
559+
| begin | String | N | 初始化时获取 | type 类型为回放有效,开始时间 格式为“YYYYMMDDHHmmss” |
560+
| end | String | N | 初始化时获取 | type 类型为回放有效,结束时间 格式为 “YYYYMMDDHHmmss” |
513561

514562
#### 切换模板主题
515563

@@ -524,15 +572,13 @@ options 参数说明
524572
console.log("地址切换成功,开始切换模板主题");
525573
player.Theme.changeTheme("pcRec");
526574
});
527-
528-
529575
```
530576

531577
template 参数说明
532578

533-
| 参数名 | 类型 | 描述 | 是否必选 |
534-
| :----- | :----- | :-------------------------------- | :------- |
535-
| type | String | 模板名称,详见初始化参数 template | Y |
579+
| 参数名 | 类型 | 描述 | 是否必选 |
580+
|:---- |:------ |:--------------------- |:---- |
581+
| type | String | 模板名称,详见初始化参数 template | Y |
536582

537583
#### 开启电子放大
538584

@@ -578,19 +624,3 @@ player.reSize(width, height);
578624
// 顶装4分屏
579625
player.setFECCorrectType({place: 3 , type:4}, "cavnas1,canvas2,canvas3") // cavnas1,canvas2,canvas3 是分屏是需要的
580626
```
581-
582-
### 非正式版说明
583-
584-
非正式版需要配置 `staticPath`
585-
586-
### 使用示例
587-
588-
> 如果使用原生 js,可参考 demos => [base-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/base-demo)
589-
590-
> 如果使用 react,可参考 demos => [react-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/react-demo)
591-
592-
> 如果使用 react + vite,可参考 demos => [with-react-vite](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/with-react-vite)
593-
594-
> 如果使用 vue2,可参考 demos => [vue-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/vue-demo)
595-
596-
> 如果使用 vue3,可参考 demos => [vue3-demo](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/tree/master/demos/vue3-demo)

demos/base-demo/ezuikit.js

Lines changed: 15 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demos/react-demo/src/App.js

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
import React from "react";
2+
import EZUIKit from "ezuikit-js";
3+
4+
import "./App.css";
5+
6+
class App extends React.Component {
7+
constructor(props) {
8+
super(props);
9+
this.player = null; //定义播放器
10+
}
11+
componentDidMount() {
12+
// fetch('https://open.ys7.com/jssdk/ezopen/demo/token')
13+
// .then(response => response.json())
14+
// .then(res => {
15+
// var accessToken = res.data.accessToken;
16+
17+
if (window.player) {
18+
return;
19+
}
20+
21+
this.player = new EZUIKit.EZUIKitPlayer({
22+
id: "video-container", // 视频容器ID
23+
accessToken:
24+
"at.0siysnsad14jkcgmbnp2pbop427gcbx6-8l00xx7oa9-193qkwi-ryfn1m0j",
25+
url: "ezopen://open.ys7.com/BD3957004/1.hd.live",
26+
// simple:极简版; pcLive: pc直播; pcRec: pc回放; mobileLive: 移动端直播; mobileRec: 移动端回放; security: 安防版; voice: 语音版;
27+
template: "pcLive",
28+
plugin: ["talk"], // 加载插件,talk-对讲
29+
width: 600,
30+
height: 400,
31+
handleFirstFrameDisplay: (res) => {
32+
if (window.player.jSPlugin) {
33+
console.log(
34+
"-------------------res",
35+
window.player.jSPlugin.player.getFrameInfo()
36+
);
37+
}
38+
},
39+
handleError: (error) => {
40+
console.log("handleError", error);
41+
},
42+
// language: "en", // zh | en
43+
// staticPath: "/ezuikit_static", // 如果想使用本地静态资源,请复制根目录下ezuikit_static 到当前目录下, 然后设置该值
44+
});
45+
// });
46+
window.player = this.player;
47+
48+
// console.log(window.player.jSPlugin);
49+
50+
// if (window.player.jSPlugin) {
51+
// window.player.jSPlugin.player.event.on("videoInfo", (res) => {
52+
// console.log(res);
53+
// });
54+
// }
55+
}
56+
play = () => {
57+
var playPromise = this.player.play();
58+
playPromise.then((data) => {
59+
console.log("promise 获取 数据", data);
60+
});
61+
};
62+
stop = () => {
63+
var stopPromise = this.player.stop();
64+
stopPromise.then((data) => {
65+
console.log("promise 获取 数据", data);
66+
});
67+
};
68+
getOSDTime = () => {
69+
var getOSDTimePromise = this.player.getOSDTime();
70+
getOSDTimePromise.then((data) => {
71+
console.log("promise 获取 数据", data);
72+
});
73+
};
74+
capturePicture = () => {
75+
var capturePicturePromise = this.player.capturePicture(
76+
`${new Date().getTime()}`
77+
);
78+
capturePicturePromise.then((data) => {
79+
console.log("promise 获取 数据", data);
80+
});
81+
};
82+
openSound = () => {
83+
var openSoundPromise = this.player.openSound();
84+
openSoundPromise.then((data) => {
85+
console.log("promise 获取 数据", data);
86+
});
87+
};
88+
closeSound = () => {
89+
var openSoundPromise = this.player.closeSound();
90+
openSoundPromise.then((data) => {
91+
console.log("promise 获取 数据", data);
92+
});
93+
};
94+
startSave = () => {
95+
var startSavePromise = this.player.startSave(`${new Date().getTime()}`);
96+
startSavePromise.then((data) => {
97+
console.log("promise 获取 数据", data);
98+
});
99+
};
100+
stopSave = () => {
101+
var stopSavePromise = this.player.stopSave();
102+
stopSavePromise.then((data) => {
103+
console.log("promise 获取 数据", data);
104+
});
105+
};
106+
ezopenStartTalk = () => {
107+
this.player.startTalk();
108+
};
109+
ezopenStopTalk = () => {
110+
this.player.stopTalk();
111+
};
112+
fullScreen = () => {
113+
this.player.fullScreen();
114+
};
115+
render() {
116+
return (
117+
<div className="demo">
118+
<h2>视频模式使用示例:</h2>
119+
<div id="video-container" style={{ width: 600, height: 600 }}></div>
120+
<div>
121+
<button onClick={() => this.stop()}>stop</button>
122+
<button onClick={() => this.play()}>play</button>
123+
<button onClick={() => this.openSound()}>openSound</button>
124+
<button onClick={() => this.closeSound()}>closeSound</button>
125+
<button onClick={() => this.startSave()}>startSave</button>
126+
<button onClick={() => this.stopSave()}>stopSave</button>
127+
<button onClick={() => this.capturePicture()}>capturePicture</button>
128+
<button onClick={() => this.fullScreen()}>fullScreen</button>
129+
<button onClick={() => this.getOSDTime()}>getOSDTime</button>
130+
<button onClick={() => this.ezopenStartTalk()}>开始对讲</button>
131+
<button onClick={() => this.ezopenStopTalk()}>结束对讲</button>
132+
</div>
133+
</div>
134+
);
135+
}
136+
}
137+
138+
export default App;

demos/vue-demo/src/components/Player.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export default {
6666
}
6767
});
6868
window.player = player;
69+
6970
},
7071
play() {
7172
var playPromise = player.play();

demos/vue3-demo/src/components/Player.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ const init = () => {
110110
id: "video-container", // 视频容器ID
111111
accessToken:
112112
"at.a9vba5iia6ixphqu8db7y16174p6neje-6f0n0ahcu8-1uvhxp7-rxswkykaa",
113-
url: "ezopen://open.ys7.com/BC7900686/1.hd.live",
113+
url: "ezopen://open.ys7.com/BD3957004/1.hd.live",
114114
// simple: 极简版; pcLive: pc直播; pcRec: pc回放; mobileLive: 移动端直播; mobileRec: 移动端回放;security: 安防版; voice: 语音版;
115115
template: "pcLive",
116116
plugin: ["talk"], // 加载插件,talk-对讲

ezuikit.js

Lines changed: 15 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ezuikit-js",
3-
"version": "8.1.1-alpha.2",
3+
"version": "8.1.1",
44
"description": "ezuikit javascript for npm",
55
"main": "ezuikit.js",
66
"repository": {
@@ -26,4 +26,4 @@
2626
"url": "https://github.com/Hikvision-Ezviz/EZUIKit-JavaScript-npm/issues"
2727
},
2828
"homepage": "https://github.com/Hikvision-Ezviz/EZUIKit-JavaScript-npm#readme"
29-
}
29+
}

0 commit comments

Comments
 (0)