ezuikit-js 8.1.1-alpha.3 → 8.1.2-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,112 +1,191 @@
1
- # [EZUIKit-JavaScript-npm][ezuikit-js]
1
+ # [EZUIKit-JavaScript-npm][ezuikit-js]
2
2
 
3
- > 轻应用npm版本,降低接入难度,适配自定义UI,适配主流框架
3
+ ![Download](https://img.shields.io/npm/dm/ezuikit-js.svg)
4
+ ![Version](https://img.shields.io/npm/v/ezuikit-js.svg)
5
+ ![License](https://img.shields.io/npm/l/ezuikit-js.svg)
6
+ ![Build Demos](https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/workflows/build-demos/badge.svg)
4
7
 
5
- > 低延时预览,云存储回放,SD卡回放
8
+ > 轻应用 npm 版本,降低接入难度,适配自定义 UI,适配主流框架
6
9
 
7
- > 功能API丰富,如:播放控制,音频控制,视频截图,实时获取视频OSDTime,视频录制,设备对讲,电子放大,全屏等
10
+ > 低延时预览,云存储回放,SD 卡回放
8
11
 
12
+ > 功能 API 丰富,如:播放控制,音频控制,视频截图,实时获取视频 OSDTime,视频录制,设备对讲,电子放大,全屏等
9
13
 
14
+ <p style="color: yellow;">hls和flv 不在维护更新,后续版本中会被移除, flv 可以使用 <a href="https://www.npmjs.com/package/ezuikit-flv" block="_target">ezuikit-flv</a>, hls 可以使用 <a href="https://www.npmjs.com/package/@ezuikit/player-hls" block="_target">@ezuikit/player-hls</a></p>
15
+ <p style="color: yellow;">hls和flv 不在维护更新,后续版本中会被移除, flv 可以使用 <a href="https://www.npmjs.com/package/ezuikit-flv" block="_target">ezuikit-flv</a>, hls 可以使用 <a href="https://www.npmjs.com/package/@ezuikit/player-hls" block="_target">@ezuikit/player-hls</a></p>
16
+ <p style="color: yellow;">hls和flv 不在维护更新,后续版本中会被移除, flv 可以使用 <a href="https://www.npmjs.com/package/ezuikit-flv" block="_target">ezuikit-flv</a>, hls 可以使用 <a href="https://www.npmjs.com/package/@ezuikit/player-hls" block="_target">@ezuikit/player-hls</a></p>
10
17
 
11
- ### 获取ezuikit-js
18
+ ### 获取 ezuikit-js
12
19
 
13
20
  ```
14
- $ npm install ezuikit-js
21
+ npm install ezuikit-js
22
+
23
+ # yarn
24
+
25
+ yarn add ezuikit-js
26
+
27
+ # pnpm
28
+
29
+ pnpm add ezuikit-js
15
30
  ```
16
- ### 引入ezuikit-js
31
+
32
+ ### 引入 ezuikit-js
17
33
 
18
34
  ```
19
35
  import EZUIKit from 'ezuikit-js';
20
36
  ```
21
37
 
22
38
  #### 如果你使用原生方法,可以通过标签引用
39
+
23
40
  ```
41
+ <!-- umd -->
24
42
  <script src="./ezuikit.js"></script>
25
43
  ```
26
44
 
27
45
  ### 开始使用 - 初始化
28
- >基本使用
29
46
 
30
- 创建DOM
47
+ > 基本使用
48
+
49
+ 创建 DOM
31
50
 
32
51
  ```
33
52
  <div id="video-container"></div>
34
53
  ```
35
54
 
36
55
  ## 播放器初始化
56
+
37
57
  ### 直播
58
+
59
+ ```js
60
+ var player = new EZUIKit.EZUIKitPlayer({
61
+ id: "video-container", // 视频容器ID
62
+ accessToken:
63
+ "at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz",
64
+ url: "ezopen://open.ys7.com/BD3957004/1.live",
65
+ width: 600,
66
+ height: 400,
67
+ handleError: (err) => {
68
+ if (err.type === "handleRunTimeInfoError" && err.data.nErrorCode === 5) {
69
+ // 加密设备密码错误
70
+ }
71
+ },
72
+ });
38
73
  ```
39
- var player = new EZUIKit.EZUIKitPlayer({
40
- id: 'video-container', // 视频容器ID
41
- accessToken: 'at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz',
42
- url: 'ezopen://open.ys7.com/AA2615287/1.live',
43
- width: 600,
44
- height: 400,
45
- })
46
- ```
74
+
47
75
  ### 回放
76
+
77
+ ```js
78
+ var player = new EZUIKit.EZUIKitPlayer({
79
+ id: "video-container", // 视频容器ID
80
+ width: 600,
81
+ height: 400,
82
+ accessToken:
83
+ "at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz",
84
+ url: "ezopen://open.ys7.com/BD3957004/1.rec",
85
+ });
48
86
  ```
49
- var player = new EZUIKit.EZUIKitPlayer({
50
- id: 'video-container', // 视频容器ID
51
- width: 600,
52
- height: 400,
53
- accessToken: 'at.3bvmj4ycamlgdwgw1ig1jruma0wpohl6-48zifyb39c-13t5am6-yukyi86mz',
54
- url: 'ezopen://open.ys7.com/AA2615287/1.rec'
55
- })
56
- ```
87
+
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
+
57
106
  #### tips
58
- 为方便开发者快速接入
59
107
 
60
- 我们提供了测试accessToken,测试播放地址,并提供了几种常用场景使用示例。你可以通过使用示例,使用测试播放地址,测试accessToken,在你的应用快速接入。
108
+ 为方便开发者快速接入
109
+
110
+ 我们提供了测试 accessToken,测试播放地址,并提供了几种常用场景使用示例。你可以通过使用示例,使用测试播放地址,测试 accessToken,在你的应用快速接入。
111
+
112
+ <b>测试播放地址:</b> ezopen://open.ys7.com/BD3957004/1.live
113
+
114
+ 你可以通过以下地址获取到测试 accessToken <a href="https://open.ys7.com/jssdk/ezopen/demo/token" target="_blank">获取测试 accessToken</a> 用来播放上述测试播放地址。
115
+ 当前设备有可能下线或被移除了, 如果自己有设备优先使用自己的设备进行测试。
116
+
117
+ ### 轻应用 - 海外版本
61
118
 
62
- <b>测试播放地址:</b> ezopen://open.ys7.com/AA2615287/1.live
119
+ > 轻应用支持向接入萤石云海外环境的设备发起取流播放,需要在初始化时配置海外服务域名,示例:
63
120
 
64
- 你可以通过以下地址获取到测试accessToken <a href="https://open.ys7.com/jssdk/ezopen/demo/token" target="_blank">获取测试accessToken</a> 用来播放上述测试播放地址。
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
+ 各地区的域名分别为:
65
136
 
66
- #### 最佳实践tips
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 |
67
144
 
68
- 1. 我们在v0.6.2及以上版本持用户通过开启谷歌实验室特性启动多线程解码,多线程模式将大大提升解码效率,降低解码内存消耗。
145
+ #### 最佳实践 tips
69
146
 
70
- >>[开启多线程方式1](https://open.ys7.com/help/384) (https://open.ys7.com/help/384)
147
+ 1. 我们在 v0.6.2 及以上版本持用户通过开启谷歌实验室特性启动多线程解码,多线程模式将大大提升解码效率,降低解码内存消耗。
71
148
 
72
- >>[开启多线程方式2](https://open.ys7.com/help/385)(https://open.ys7.com/help/385)
149
+ > [开启多线程方式 1](https://open.ys7.com/help/384)(https://open.ys7.com/help/384)
73
150
 
74
- 2. 视频解码库默认从开放平台远程拉取,你可以将解码库放到本地或者你的服务内,可以提升加载解码库速度。
151
+ > [开启多线程方式 2](https://open.ys7.com/help/385)(https://open.ys7.com/help/385)
75
152
 
76
- >> <b>使用本地解码库提升加载速度</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/localDecoder.html" target="_blank">本地解码库示例</a>
153
+ 2. 视频解码库默认从开放平台远程拉取,你可以将解码库放到本地或者你的服务内,可以提升加载解码库速度。
154
+
155
+ > <b>使用本地解码库提升加载速度</b> 开发者需要自己设置静态资源文件地址, 参考 `staticPath`的配置
77
156
 
78
157
  ### 使用示例
79
- > 1. 快速创建视频播放页面
80
158
 
81
- &emsp;&emsp;&emsp;&emsp;<b>基本使用:</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/base.html" target="_blank">基本使用示例</a>
159
+ > 1. 快速创建视频播放页面
82
160
 
83
- > 2. 前往[开放平台轻应用模板管理页](https://open.ys7.com/console/ezuikit/template.html)创建一个主题,可以动态配置你的播放主题,控件,示例展示了获取一个主题后使用示例。
161
+ &emsp;&emsp;&emsp;&emsp;<b>基本使用:</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/index.html" target="_blank">基本使用示例</a>
84
162
 
85
- &emsp;&emsp;&emsp;&emsp;<b>自定义主题:</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/template.html" target="_blank">自定义主题示例</a>
163
+ > 2. 前往[开放平台轻应用模板管理页](https://open.ys7.com/console/ezuikit/template.html)创建一个主题,可以动态配置你的播放主题,控件,示例展示了获取一个主题后使用示例。
86
164
 
87
- > 3. 你可以本地创建一个主题配置,可以本地配置你的播放主题,控件,示例展示了本地配置项使用示例。
165
+ &emsp;&emsp;&emsp;&emsp;<b>自定义主题:</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/template.html" target="_blank">自定义主题示例</a>
88
166
 
89
- &emsp;&emsp;&emsp;&emsp;<b>本地主题配置:</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/themeData.html" target="_blank">本地主题配置示例</a>
167
+ > 3. 你可以本地创建一个主题配置,可以本地配置你的播放主题,控件,示例展示了本地配置项使用示例。
90
168
 
91
- > 4. 我们提供了一些通用场景的主题,PC端预览,PC端回放,移动端预览,移动端回放,你也可以直接使用。
169
+ &emsp;&emsp;&emsp;&emsp;<b>本地主题配置:</b> <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/themeData.html" target="_blank">本地主题配置示例</a>
92
170
 
171
+ > 4. 我们提供了一些通用场景的主题,PC 端预览,PC 端回放,移动端预览,移动端回放,你也可以直接使用。
93
172
 
94
- &emsp;&emsp;&emsp;&emsp;<b>PC端预览-固定主题:</b>
95
- <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/pcLive.html" target="_blank">PC端预览-固定主题示例</a>
173
+ &emsp;&emsp;&emsp;&emsp;<b>PC 端预览-固定主题:</b>
174
+ <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/pcLive.html" target="_blank">PC 端预览-固定主题示例</a>
96
175
 
97
- &emsp;&emsp;&emsp;&emsp;<b>PC端回放-固定主题:</b>
98
- <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/pcRec.html" target="_blank">PC端回放-固定主题示例</a>
176
+ &emsp;&emsp;&emsp;&emsp;<b>PC 端回放-固定主题:</b>
177
+ <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/pcRec.html" target="_blank">PC 端回放-固定主题示例</a>
99
178
 
100
179
  &emsp;&emsp;&emsp;&emsp;<b>移动端预览-固定主题:</b>
101
- <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/mobileLive.html" target="_blank">移动端预览-固定主题示例</a>
180
+ <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/mobileLive.html" target="_blank">移动端预览-固定主题示例</a>
102
181
 
103
182
  &emsp;&emsp;&emsp;&emsp;<b>移动端回放-固定主题:</b>
104
- <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/mobileRec.html" target="_blank">移动端回放-固定主题示例</a>
183
+ <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/mobileRec.html" target="_blank">移动端回放-固定主题示例</a>
105
184
 
106
- >同一个页面播放多个视频,可以参考:
185
+ > 同一个页面播放多个视频,可以参考:
107
186
 
108
187
  &emsp;&emsp;&emsp;&emsp;<b>单页面多实例(视频多窗口):</b>
109
- <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/multi.html" target="_blank">单页面多实例(视频多窗口)示例</a>
188
+ <a href="https://github.com/Ezviz-OpenBiz/EZUIKit-JavaScript-npm/blob/master/demos/base-demo/multi.html" target="_blank">单页面多实例(视频多窗口)示例</a>
110
189
 
111
190
  #### 附录: 初始化参数说明
112
191
 
@@ -117,24 +196,33 @@ import EZUIKit from 'ezuikit-js';
117
196
  <tr><td>url</td><td>String</td><td>
118
197
 
119
198
  #### 直播
199
+
120
200
  ##### 标清
201
+
121
202
  ezopen://open.ys7.com/${设备序列号}/{通道号}.live<br/>
203
+
122
204
  ##### 高清
205
+
123
206
  ezopen://open.ys7.com/${设备序列号}/{通道号}.hd.live<br/>
124
207
 
125
208
  #### 回放
126
- ##### sd卡回放
127
- 初始化参数 url值为:<br/>
209
+
210
+ ##### sd 卡回放
211
+
212
+ 初始化参数 url 值为:<br/>
128
213
  ezopen://open.ys7.com/${设备序列号}/{通道号}.rec?begin=yyyyMMddhhmmss
214
+
129
215
  ##### 云存储回放
130
- 初始化参数 url值为:<br/>
216
+
217
+ 初始化参数 url 值为:<br/>
131
218
  ezopen://open.ys7.com/${设备序列号}/{通道号}.cloud.rec?begin=yyyyMMddhhmmss
132
- 视频ezopen协议播放地址 详见:<a href="http://open.ys7.com/doc/zh/readme/ezopen.html" target="_blank">ezopen协议</a> </td><td>Y</td></tr>
133
- <tr><td>audio</td><td>boolean</td><td>是否默认开启声音 true:打开(默认) false:关闭 </td><td>N</td></tr>
134
- <tr><td>width</td><td>int</td><td>视频宽度,默认值为容器容器DOM宽度 </td><td>Y</td></tr>
135
- <tr><td>height</td><td>int</td><td>视频高度,默认值为容器容器DOM高度</td><td>Y</td></tr>
136
- <tr><td>template</td><td>String</td><td>
219
+ 视频 ezopen 协议播放地址 详见:<a href="https://open.ys7.com/help/23" target="_blank">ezopen 协议</a> </td><td>Y</td></tr>
137
220
 
221
+ <tr><td>audio</td><td>boolean</td><td>是否默认开启声音 true:打开(默认) false:关闭 </td><td>N</td></tr>
222
+ <tr><td>width</td><td>int</td><td>视频宽度,默认值为容器容器DOM宽度 </td><td>Y</td></tr>
223
+ <tr><td>height</td><td>int</td><td>视频高度,默认值为容器容器DOM高度</td><td>Y</td></tr>
224
+ <tr><td>staticPath</td><td>string</td><td>设置静态资源地址, 自定义可以自行下载 `ezuikit_static`放置在自己的服务器下, 设置 {staticPath: "/ezuikit_static"} </td><td>N</td></tr>
225
+ <tr><td>template</td><td>String</td><td>
138
226
 
139
227
  <table style="display:inline-block;width:700px">
140
228
  <tr><th>模板值</th><th>描述</th></tr>
@@ -145,19 +233,19 @@ ezopen://open.ys7.com/${设备序列号}/{通道号}.cloud.rec?begin=yyyyMMddhhm
145
233
 
146
234
  <tr><td>security</td><td>安防版(预览回放); *固定模板 包含视频窗口,叠加了录制,全屏控件,<br />标清/高清切换,预览录制切换控件*</td></tr>
147
235
  <tr><td>voice</td><td>语音版; *固定模板 包含视频窗口,叠加了录制,全屏控件,语音播报,语音<br />对讲控件*</td></tr>
148
- <tr><td>pcLive</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定,可用于pc端预览,如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用<br />themeData本地配置*</td></tr>
149
- <tr><td>pcRec</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定, 可用于pc端回放,如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
150
- <tr><td>mobileLive</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定,可用于移动端预<br />览,如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
236
+ <tr><td>pcLive</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定,可用于pc端预览,如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用<br />themeData本地配置*</td></tr>
237
+ <tr><td>pcRec</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定, 可用于pc端回放,如需<br />修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
238
+ <tr><td>mobileLive</td><td> *固定模板 按钮列表,颜色,底部头部背景色固定,可用于移动端预<br />览,如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
151
239
  <tr><td>mobileRec</td><td>*固定模板 按钮列表,颜色,底部头部背景色固定, 可用于移动端回放,<br />如需修改按钮配置,头部底部背景色,可参考 {{自定义themeId}},或者使用themeData<br />本地配置*</td></tr>
152
240
  <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>
153
241
  </table>
154
242
 
155
- </td></tr>
243
+ </td><td>N</td></tr>
156
244
  <tr><td>themeData</td><td>Object</td><td>
157
245
  themeData将主题数据本地化,设置本地数据,需要删除template参数 <br />
158
- 你可以通过themeData修改按钮位置,颜色,头部底部颜色等配置。
246
+ 你可以通过themeData修改按钮位置,颜色,头部底部颜色等配置。
159
247
 
160
- 配置示例:
248
+ 配置示例:
161
249
 
162
250
  <pre><code>
163
251
 
@@ -282,142 +370,200 @@ themeData将主题数据本地化,设置本地数据,需要删除template参
282
370
  </td><td>N</td></tr>
283
371
  <tr><td>plugin</td><td>String</td><td>按需加载插件,可选值: talk:对讲,示例:plugin:["talk"] </td><td>N</td></tr>
284
372
  <tr><td>handleSuccess</td><td>function</td><td>自动播放成功回调</td><td>N</td></tr>
373
+ <tr><td>handleError</td><td>function</td><td>错误回调</td><td>N</td></tr>
285
374
  <tr><td>seekFrequency </td><td>function</td><td>为避免频繁拖动播放异常,可设置模板回放时间轴拖动防抖间隔,默认值为2000(2秒),可取2000(2秒),3000(3秒),4000(4秒),5000(5秒)</td><td>N</td></tr>
375
+ <tr><td>language</td><td>String</td><td>多语言 (zh | en), 默认zh (v8.0.8版本及以上支持)</td><td>N</td></tr>
376
+ <tr><td>debugDownloadData</td><td>boolean</td><td>下载原始码流, 调试码流使用, 默认 false (v8.1.1版本及以上支持)</td><td>N</td></tr>
377
+ <tr><td>disableRenderPrivateData</td><td>boolean</td><td>禁止渲染私有数据(如智能分析, 移动侦测, 火点信息等), 默认 false (v8.1.1版本及以上支持)</td><td>N</td></tr>
286
378
  </table>
287
379
 
288
-
289
380
  ### 方法调用
290
- > 同步方法(方式1)
291
- > 方法支持通过promise回调,可通过回调方式执行下一步动作(方式2)。
381
+
382
+ > 同步方法(方式 1)
383
+ > 方法支持通过 promise 回调,可通过回调方式执行下一步动作(方式 2)。
292
384
 
293
385
  #### 开始播放
386
+
387
+ ```js
388
+ // 方式1
389
+ player.play();
390
+ // 方式2
391
+ player.play().then(() => {
392
+ console.log("执行播放成功后其他动作");
393
+ });
294
394
  ```
295
- // 方式1
296
- player.play();
297
- // 方式2
298
- player.play()
299
- .then(()=>{
300
- console.log("执行播放成功后其他动作");
301
- });
302
- ```
395
+
303
396
  #### 停止播放
304
397
 
398
+ ```js
399
+ // 方式1
400
+ player.stop();
401
+ // 方式2
402
+ player.stop().then(() => {
403
+ console.log("执行停止成功后其他动作");
404
+ });
305
405
  ```
306
- // 方式1
307
- player.stop();
308
- // 方式2
309
- player.stop()
310
- .then(()=>{
311
- console.log("执行停止成功后其他动作");
312
- });
313
- ```
406
+
314
407
  #### 开启声音
315
408
 
409
+ ```js
410
+ // 方式1
411
+ player.openSound();
412
+ // 方式2
413
+ player.openSound().then(() => {
414
+ console.log("执行开启声音成功后其他动作");
415
+ });
316
416
  ```
317
- // 方式1
318
- player.openSound();
319
- // 方式2
320
- player.openSound()
321
- .then(()=>{
322
- console.log("执行开启声音成功后其他动作");
323
- });
417
+
418
+ #### 关闭声音
419
+
420
+ ```js
421
+ // 方式1
422
+ player.closeSound();
324
423
  ```
424
+
325
425
  #### 开始录制
326
- > 因录制解码库加载限制,录制库加载需要3S秒左右,请保证录制时长需要大于5秒。
426
+
427
+ > 因录制解码库加载限制,录制库加载需要 3S 秒左右,请保证录制时长需要大于 5 秒。
327
428
  > 录制文件需要使用播放器,播放器下载地址 <a href="https://service.ys7.com/downloadInfoSite/admin">播放器下载</a>
429
+
430
+ ```js
431
+ // 方式1
432
+ player.startSave("唯一文件名");
433
+ // 方式2
434
+ player.startSave("唯一文件名").then(() => {
435
+ console.log("执行开始录制成功后其他动作");
436
+ });
328
437
  ```
329
- // 方式1
330
- player.startSave("唯一文件名");
331
- // 方式2
332
- player.startSave("唯一文件名")
333
- .then(()=>{
334
- console.log("执行开始录制成功后其他动作");
335
- });
336
- ```
438
+
337
439
  #### 停止录制并下载文件
338
440
 
441
+ ```js
442
+ // 方式1
443
+ player.stopSave();
444
+ // 方式2
445
+ player.stopSave().then(() => {
446
+ console.log("执行停止录制成功后其他动作");
447
+ });
339
448
  ```
340
- // 方式1
341
- player.stopSave();
342
- // 方式2
343
- player.stopSave()
344
- .then(()=>{
345
- console.log("执行停止录制成功后其他动作");
346
- });
347
- ```
449
+
348
450
  #### 抓图
349
451
 
452
+ ```js
453
+ // 方式1 - 下载到本地
454
+ player.capturePicture("文件名");
455
+ // 方式2 - 返回base64格式
456
+ const capCallback = (data) => {
457
+ console.log("data", data);
458
+ };
459
+ player.capturePicture("default", capCallback);
350
460
  ```
351
- // 方式1 - 下载到本地
352
- player.capturePicture("文件名");
353
- // 方式2 - 返回base64格式
354
- const capCallback = (data) => {
355
- console.log("data",data)
356
- }
357
- player.capturePicture('default',capCallback)
358
- ```
461
+
359
462
  #### 开始对讲
360
463
 
361
- ```
362
- player.startTalk();
464
+ ```js
465
+ player.startTalk();
363
466
  ```
364
467
 
365
468
  #### 结束对讲
366
469
 
470
+ ```js
471
+ player.stopTalk();
367
472
  ```
368
- player.stopTalk();
473
+
474
+ #### 对讲设置麦克风增益
475
+
476
+ ```
477
+ // 设置音频增益系数 0 ~ 10
478
+ player.setVolumeGain(volume);
369
479
  ```
370
480
 
371
- #### 全屏
481
+ #### 获取麦克风权限
372
482
 
373
483
  ```
374
- player.fullScreen();
484
+ player.getMicrophonePermission().then(data => {
485
+ if (data.code === 0) {
486
+ // 成功....
487
+ }
488
+ })
375
489
  ```
376
- #### 取消全屏
490
+
491
+ #### 获取麦克风列表
377
492
 
378
493
  ```
379
- player.cancelFullScreen();
494
+ // 需要在麦克风已授权的情况下调用,才能获取到麦克风列表,可以和getMicrophonePermission配合使用,或在初始化后先调用getMicrophonePermission获取授权
495
+ player.getMicrophonesList().then(data => {
496
+ if (data.code === 0) {
497
+ // 成功....
498
+ }
499
+ })
380
500
  ```
381
- #### 获取OSD时间
501
+
502
+ #### 切换麦克风
382
503
 
383
504
  ```
384
- player.getOSDTime()
385
- .then((time)=>{
386
- console.log("获取到的当前播放时间", time);
387
- });
505
+ // microphoneId 为获取到的麦克风列表中的deviceId,如果当前处于对讲中,调用setProfile会先关闭,重新发起对讲
506
+ player.setProfile({ microphoneId })
388
507
  ```
389
508
 
390
- #### 切换地址播放
509
+ #### 监听麦克风音量变化
391
510
 
392
- > 可用于在播放中切换设备,切换播放参数,以及直播切换回放等。请注意,频繁切换可能导致异常,切换间隔至少需要1秒
511
+ ```
512
+ player.eventEmitter.on('volumeChange', ({ data }) => {
513
+ // 动态显示音柱,100ms触发一次
514
+ console.log(`${data * 100}%`)
515
+ })
516
+ ```
517
+
518
+ #### 全屏
393
519
 
520
+ ```js
521
+ player.fullScreen();
394
522
  ```
395
- player.changePlayUrl(options)
396
- .then(()=>{
397
- console.log("切换成功")
398
- });
523
+
524
+ #### 取消全屏
525
+
526
+ ```js
527
+ player.cancelFullScreen();
528
+ ```
529
+
530
+ #### 获取 OSD 时间
531
+
532
+ ```js
533
+ player.getOSDTime().then((time) => {
534
+ console.log("获取到的当前播放时间", time);
535
+ });
399
536
  ```
400
- options参数说明
401
537
 
402
- |参数名|类型|是否必选|默认值|描述|
403
- |:--|:--|:--|:--|:--|
404
- |type| String| Y|无|播放地址类型,"live":预览,"rec":回放;“cloud.rec”:云存储回放|
405
- |deviceSerial | String | Y |无|设备序列号,存在英文字母的设备序列号,字母需为大写|
406
- |channelNo | int | Y | 无 | 通道号|
407
- |accessToken| String| N | 初始化时获取 | 授权过程获取的access_token|
408
- |hd | boolean | N |初始化时获取|是否为高清 true-主码流(高清) false-子码流(标清) |
409
- |validCode |String |N| 初始化时获取 | 设备验证码(加密设备播放需要输入验证码)|
410
- |validCode |String |N| 初始化时获取 | 设备验证码(加密设备播放需要输入验证码)|
411
- |begin| String |N|初始化时获取|type类型为回放有效,开始时间 格式为“YYYYMMDDHHmmss” |
412
- |end| String | N| 初始化时获取|type类型为回放有效,结束时间 格式为 “YYYYMMDDHHmmss” |
538
+ #### 切换地址播放
539
+
540
+ > 可用于在播放中切换设备,切换播放参数,以及直播切换回放等。请注意,频繁切换可能导致异常,切换间隔至少需要 1 秒
413
541
 
542
+ ```js
543
+ player.changePlayUrl(options).then(() => {
544
+ console.log("切换成功");
545
+ });
546
+ ```
414
547
 
415
-
548
+ options 参数说明
549
+
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” |
561
+
562
+ #### 切换模板主题
416
563
 
417
- #### 切换模板主题
418
564
  > 可用于在播放中切换模板主题,请切换播放地址成功后调用
419
565
 
420
- ```
566
+ ```js
421
567
  player.Theme.changeTheme(template)
422
568
 
423
569
  // 预览切回放场景示例
@@ -426,50 +572,55 @@ options参数说明
426
572
  console.log("地址切换成功,开始切换模板主题");
427
573
  player.Theme.changeTheme("pcRec");
428
574
  });
429
-
430
-
431
575
  ```
432
- template参数说明
433
576
 
434
- |参数名|类型|描述|是否必选|
435
- |:--|:--|:--|:--|
436
- |type| String| 模板名称,详见初始化参数template| Y|
577
+ template 参数说明
437
578
 
579
+ | 参数名 | 类型 | 描述 | 是否必选 |
580
+ | :----- | :----- | :-------------------------------- | :------- |
581
+ | type | String | 模板名称,详见初始化参数 template | Y |
438
582
 
439
583
  #### 开启电子放大
440
- >建议使用模板,模板中的电子放大功能更全
441
584
 
585
+ > 建议使用模板,模板中的电子放大功能更全
586
+
587
+ ```js
588
+ // 方式1
589
+ player.enableZoom();
590
+ // 方式2
591
+ player.enableZoom().then(() => {
592
+ console.log("开启电子放大成功");
593
+ });
442
594
  ```
443
- // 方式1
444
- player.enableZoom();
445
- // 方式2
446
- player.enableZoom()
447
- .then(()=>{
448
- console.log("开启电子放大成功");
449
- });
450
- ```
595
+
451
596
  #### 关闭电子放大
452
597
 
453
- ```
454
- // 方式1
455
- player.closeZoom();
456
- // 方式2
457
- player.closeZoom()
458
- .then(()=>{
459
- console.log("关闭电子放大成功");
460
- });
598
+ ```js
599
+ // 方式1
600
+ player.closeZoom();
601
+ // 方式2
602
+ player.closeZoom().then(() => {
603
+ console.log("关闭电子放大成功");
604
+ });
461
605
  ```
462
606
 
463
607
  #### 重置画面宽高
464
608
 
465
- ```
466
- player.reSize(width, height);
609
+ ```js
610
+ player.reSize(width, height);
467
611
  ```
468
612
 
469
- ### 使用示例
613
+ #### 鱼眼矫正(软解 开启 [SharedArrayBuffer](https://open.ys7.com/help/1772?h=SharedArrayBuffer))
470
614
 
471
- > 如果使用原生js,可参考demos => base-demo
472
-
473
- > 如果使用react,可参考demos => react-demo
474
-
475
- > 如果使用vue,可参考demos => vue-demo
615
+ ```js
616
+ // {1, 0} 壁装鱼眼 不矫正
617
+ // {1, 1} 壁装360°全景
618
+ // {1, 2} 壁装4分屏
619
+ // {1, 4} 壁装广角
620
+ // {3, 0} 顶装鱼眼 不矫正
621
+ // {3, 1} 顶装360°全景
622
+ // {3, 4} 顶装4分屏
623
+ // {3, 5} 顶装柱状
624
+ // 顶装4分屏
625
+ player.setFECCorrectType({place: 3 , type:4}, "cavnas1,canvas2,canvas3") // cavnas1,canvas2,canvas3 是分屏是需要的
626
+ ```