@besovideo/webrtc-player 0.7.2 → 0.8.2
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 +290 -268
- package/dist/main.es.css +1 -1
- package/dist/main.es.js +9 -9
- package/dist/types/api/device.d.ts +32 -0
- package/dist/types/api/dialog.d.ts +4 -4
- package/dist/types/components/puPlayer.d.ts +2 -0
- package/dist/types/core/dom.d.ts +1 -1
- package/dist/types/core/error.d.ts +1 -0
- package/dist/types/core/events.d.ts +10 -0
- package/dist/types/core/index.d.ts +4 -4
- package/dist/types/main.d.ts +1 -1
- package/dist/types/plugins/controller/event.d.ts +2 -0
- package/dist/types/plugins/controller/index.d.ts +26 -12
- package/dist/types/plugins/mixins/visible.d.ts +11 -7
- package/dist/types/plugins/modal.d.ts +5 -5
- package/dist/types/plugins/player/event.d.ts +6 -0
- package/dist/types/plugins/player/index.d.ts +12 -8
- package/dist/types/plugins/player/panel.d.ts +9 -3
- package/dist/types/plugins/ptz/button.d.ts +16 -0
- package/dist/types/plugins/ptz/index.d.ts +34 -0
- package/dist/types/plugins/ptz/speedSlider.d.ts +17 -0
- package/dist/types/plugins/types.d.ts +19 -4
- package/dist/types/plugins/video.d.ts +19 -2
- package/dist/types/templates/button.d.ts +4 -2
- package/dist/types/templates/drawer.d.ts +7 -0
- package/dist/types/templates/icons.d.ts +12 -0
- package/dist/types/templates/input.d.ts +11 -0
- package/dist/types/utils/lang.d.ts +1 -0
- package/dist/types/utils/media.d.ts +19 -0
- package/dist/types/utils/util.d.ts +8 -0
- package/package.json +3 -2
- package/dist/types/plugins/videoCanvas.d.ts +0 -9
package/README.md
CHANGED
|
@@ -1,268 +1,290 @@
|
|
|
1
|
-
# @besovideo/webrtc-player
|
|
2
|
-
|
|
3
|
-
  
|
|
4
|
-
|
|
5
|
-
[](https://nodei.co/npm/@besovideo/webrtc-player/)
|
|
6
|
-
|
|
7
|
-
## 简介 Introduction
|
|
8
|
-
|
|
9
|
-
> 设备视频播放、对讲封装
|
|
10
|
-
|
|
11
|
-
## 安装 Installation
|
|
12
|
-
|
|
13
|
-
**use npm**
|
|
14
|
-
|
|
15
|
-
```shell
|
|
16
|
-
npm i @besovideo/webrtc-player
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**use yarn**
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
yarn add @besovideo/webrtc-player
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## 示例 Example
|
|
26
|
-
|
|
27
|
-
**视频**
|
|
28
|
-
|
|
29
|
-
```typescript
|
|
30
|
-
import {
|
|
31
|
-
PuPlayer,
|
|
32
|
-
IPuPlayerProps,
|
|
33
|
-
IPuPlayerInstance,
|
|
34
|
-
clearAllDialog,
|
|
35
|
-
} from "@besovideo/webrtc-player";
|
|
36
|
-
import "@besovideo/webrtc-player/dist/main.es.css";
|
|
37
|
-
|
|
38
|
-
const { instance } = PuPlayer({
|
|
39
|
-
// (可选) 容器节点 注意一个容器内只能存在一个实例 当container为假值(包括false、null、undefined)时 将返回实例引用的dom节点 容器必须指定高度 参考高德地图
|
|
40
|
-
container: document.getElementById("player_container"),
|
|
41
|
-
// 必填 设备选项
|
|
42
|
-
puOption: {
|
|
43
|
-
// 设备id
|
|
44
|
-
id: "PU_123456",
|
|
45
|
-
// 设备通道号
|
|
46
|
-
index: 0,
|
|
47
|
-
},
|
|
48
|
-
// 必填 用户授权令牌
|
|
49
|
-
token: "Y3UrQ1VfYWRtestYDHYUAStest",
|
|
50
|
-
// (可选) peer connection 连接媒体配置
|
|
51
|
-
defaultMediaOption: {
|
|
52
|
-
// 启用音频
|
|
53
|
-
audio: true,
|
|
54
|
-
// 启用视频
|
|
55
|
-
video: true,
|
|
56
|
-
},
|
|
57
|
-
// (可选) 是否静音
|
|
58
|
-
muted: false,
|
|
59
|
-
// (可选) 指定video如何适应容器 (fill: 填充容器 ; contain :保持视频比例适应容器)
|
|
60
|
-
videoFit: "fill",
|
|
61
|
-
// (可选) 指定请求url路径前缀 可使用protocol+host 如:http://192.168.6.111:9780
|
|
62
|
-
// apiPrefix: "/test_api/prefix",
|
|
63
|
-
|
|
64
|
-
// (可选) 用于测试播放视频 (存在时优先使用url播放,为浏览器直接播放)
|
|
65
|
-
// testUrl: "https://cdn.plyr.io/static/demo/View_From_A_Blue_Moon_Trailer-576p.mp4",
|
|
66
|
-
// (可选) 连接建立后回调
|
|
67
|
-
onConnected: () => {},
|
|
68
|
-
// (可选) 连接建立失败时的回调
|
|
69
|
-
onConnectedFailed: () => {},
|
|
70
|
-
// (可选) 连接断开后回调
|
|
71
|
-
onDisConnected: () => {},
|
|
72
|
-
// (可选) 双击是否全屏
|
|
73
|
-
fullScreenOnDblclick: true,
|
|
74
|
-
// (可选) 启用控制器
|
|
75
|
-
enableController: false
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
//
|
|
81
|
-
instance.
|
|
82
|
-
//
|
|
83
|
-
instance.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
//
|
|
90
|
-
instance.
|
|
91
|
-
//
|
|
92
|
-
instance.
|
|
93
|
-
//
|
|
94
|
-
instance.
|
|
95
|
-
//
|
|
96
|
-
instance.
|
|
97
|
-
//
|
|
98
|
-
instance.
|
|
99
|
-
//
|
|
100
|
-
instance.
|
|
101
|
-
//
|
|
102
|
-
instance.
|
|
103
|
-
//
|
|
104
|
-
instance.
|
|
105
|
-
//
|
|
106
|
-
instance.
|
|
107
|
-
//
|
|
108
|
-
instance.
|
|
109
|
-
//
|
|
110
|
-
instance.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
//
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
//
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
1
|
+
# @besovideo/webrtc-player
|
|
2
|
+
|
|
3
|
+
  
|
|
4
|
+
|
|
5
|
+
[](https://nodei.co/npm/@besovideo/webrtc-player/)
|
|
6
|
+
|
|
7
|
+
## 简介 Introduction
|
|
8
|
+
|
|
9
|
+
> 设备视频播放、对讲封装
|
|
10
|
+
|
|
11
|
+
## 安装 Installation
|
|
12
|
+
|
|
13
|
+
**use npm**
|
|
14
|
+
|
|
15
|
+
```shell
|
|
16
|
+
npm i @besovideo/webrtc-player
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**use yarn**
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
yarn add @besovideo/webrtc-player
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 示例 Example
|
|
26
|
+
|
|
27
|
+
**视频**
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import {
|
|
31
|
+
PuPlayer,
|
|
32
|
+
IPuPlayerProps,
|
|
33
|
+
IPuPlayerInstance,
|
|
34
|
+
clearAllDialog,
|
|
35
|
+
} from "@besovideo/webrtc-player";
|
|
36
|
+
import "@besovideo/webrtc-player/dist/main.es.css";
|
|
37
|
+
|
|
38
|
+
const { instance } = PuPlayer({
|
|
39
|
+
// (可选) 容器节点 注意一个容器内只能存在一个实例 当container为假值(包括false、null、undefined)时 将返回实例引用的dom节点 容器必须指定高度 参考高德地图
|
|
40
|
+
container: document.getElementById("player_container"),
|
|
41
|
+
// 必填 设备选项
|
|
42
|
+
puOption: {
|
|
43
|
+
// 设备id
|
|
44
|
+
id: "PU_123456",
|
|
45
|
+
// 设备通道号
|
|
46
|
+
index: 0,
|
|
47
|
+
},
|
|
48
|
+
// 必填 用户授权令牌
|
|
49
|
+
token: "Y3UrQ1VfYWRtestYDHYUAStest",
|
|
50
|
+
// (可选) peer connection 连接媒体配置
|
|
51
|
+
defaultMediaOption: {
|
|
52
|
+
// 启用音频
|
|
53
|
+
audio: true,
|
|
54
|
+
// 启用视频
|
|
55
|
+
video: true,
|
|
56
|
+
},
|
|
57
|
+
// (可选) 是否静音
|
|
58
|
+
muted: false,
|
|
59
|
+
// (可选) 指定video如何适应容器 (fill: 填充容器 ; contain :保持视频比例适应容器)
|
|
60
|
+
videoFit: "fill",
|
|
61
|
+
// (可选) 指定请求url路径前缀 可使用protocol+host 如:http://192.168.6.111:9780
|
|
62
|
+
// apiPrefix: "/test_api/prefix",
|
|
63
|
+
|
|
64
|
+
// (可选) 用于测试播放视频 (存在时优先使用url播放,为浏览器直接播放)
|
|
65
|
+
// testUrl: "https://cdn.plyr.io/static/demo/View_From_A_Blue_Moon_Trailer-576p.mp4",
|
|
66
|
+
// (可选) 连接建立后回调
|
|
67
|
+
onConnected: () => {},
|
|
68
|
+
// (可选) 连接建立失败时的回调
|
|
69
|
+
onConnectedFailed: () => {},
|
|
70
|
+
// (可选) 连接断开后回调
|
|
71
|
+
onDisConnected: () => {},
|
|
72
|
+
// (可选) 双击是否全屏
|
|
73
|
+
fullScreenOnDblclick: true,
|
|
74
|
+
// (可选) 启用控制器
|
|
75
|
+
enableController: false,
|
|
76
|
+
// (可选) 禁用控制器的控制项 下面示例中禁用了云台控制
|
|
77
|
+
disabledControls: ["ptzControl"],
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// setVideoFit 更改videoFit
|
|
81
|
+
instance.setVideoFit("contain");
|
|
82
|
+
// setToken 更改请求时的token
|
|
83
|
+
instance.setToken("newTTTTToken");
|
|
84
|
+
// setPuOption 更改请求的设备信息
|
|
85
|
+
instance.setPuOption({
|
|
86
|
+
id: "PU_12345test",
|
|
87
|
+
index: 123,
|
|
88
|
+
});
|
|
89
|
+
// setApiPrefix 更改请求时的url前缀
|
|
90
|
+
instance.setApiPrefix("/测试改前缀");
|
|
91
|
+
// open 异步 先关闭再开始建立连接 (可选参数: muted:boolean = false 是否静音打开)
|
|
92
|
+
instance.open();
|
|
93
|
+
// close 异步 释放dialog 并关闭 当前的 peer connection
|
|
94
|
+
instance.close();
|
|
95
|
+
// destroy 执行close 并从dom移除PuPlayer节点
|
|
96
|
+
instance.destroy();
|
|
97
|
+
// moveTo 将节点移动至新的容器
|
|
98
|
+
instance.moveTo(document.getElementById("new_player_container"));
|
|
99
|
+
// getCurrentContainer 获得当前所在的容器
|
|
100
|
+
instance.getCurrentContainer();
|
|
101
|
+
// hidden 隐藏 异步 (可选参数: muted?:boolean 是否静音 可不传)
|
|
102
|
+
instance.hidden(true);
|
|
103
|
+
// display 显示 (可选参数: muted?:boolean 是否静音 可不传)
|
|
104
|
+
instance.display();
|
|
105
|
+
// play 播放 异步
|
|
106
|
+
instance.play();
|
|
107
|
+
// mute 切换静音 (可选参数: muted:boolean = false 是否静音)
|
|
108
|
+
instance.mute(true);
|
|
109
|
+
// 获取puPlayer的div
|
|
110
|
+
instance.getPlayerElement();
|
|
111
|
+
// 获取内部引用的video元素
|
|
112
|
+
instance.getVideoElement();
|
|
113
|
+
|
|
114
|
+
// clearAllDialog 异步 释放全部打开的dialog 不管是音视频还是对讲
|
|
115
|
+
clearAllDialog();
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- Controls 控制项列表
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
// 全部控制项
|
|
122
|
+
[
|
|
123
|
+
"volume",
|
|
124
|
+
"volumeSlider",
|
|
125
|
+
"information",
|
|
126
|
+
"screenshot",
|
|
127
|
+
"record",
|
|
128
|
+
"fullscreen",
|
|
129
|
+
"rotate",
|
|
130
|
+
"ptzControl",
|
|
131
|
+
]
|
|
132
|
+
// 在创建实例时 传入参数disabledControls数组 可关闭相关功能
|
|
133
|
+
// 如不使用全屏按钮、云台控制器
|
|
134
|
+
disabledControls: ["fullscreen", "ptzControl"]
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**对讲**
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import {
|
|
142
|
+
Intercom,
|
|
143
|
+
IIntercomProps,
|
|
144
|
+
IIntercomInstance,
|
|
145
|
+
} from "@besovideo/webrtc-player";
|
|
146
|
+
import "@besovideo/webrtc-player/dist/main.es.css";
|
|
147
|
+
|
|
148
|
+
const { instance } = Intercom({
|
|
149
|
+
// 必填 设备选项
|
|
150
|
+
puOption: {
|
|
151
|
+
// 设备id
|
|
152
|
+
id: "PU_123456",
|
|
153
|
+
// 设备通道号
|
|
154
|
+
index: 0,
|
|
155
|
+
},
|
|
156
|
+
// 必填 用户授权令牌
|
|
157
|
+
token: "Y3UrQ1VfYWRtestYDHYUAStest",
|
|
158
|
+
// (可选) 连接建立后回调
|
|
159
|
+
onConnected: () => {},
|
|
160
|
+
// (可选) 连接建立失败时的回调
|
|
161
|
+
onConnectedFailed: () => {},
|
|
162
|
+
// (可选) 连接断开后回调
|
|
163
|
+
onDisConnected: () => {},
|
|
164
|
+
//(可选) 无法获取用户麦克风时
|
|
165
|
+
onGetUserMediaFailed: () => {},
|
|
166
|
+
// (可选) 指定请求url的前缀 方便代理请求
|
|
167
|
+
// apiPrefix: "/test_api/prefix",
|
|
168
|
+
});
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**会议**
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
import {
|
|
175
|
+
Conference,
|
|
176
|
+
IConferenceProps,
|
|
177
|
+
IConferenceInstance,
|
|
178
|
+
} from "@besovideo/webrtc-player";
|
|
179
|
+
import "@besovideo/webrtc-player/dist/main.es.css";
|
|
180
|
+
|
|
181
|
+
const { instance } = Conference({
|
|
182
|
+
// 必填 设备选项
|
|
183
|
+
confOption: {
|
|
184
|
+
// 会议id
|
|
185
|
+
id: "test89312",
|
|
186
|
+
// 会议成员ID
|
|
187
|
+
index: 0,
|
|
188
|
+
},
|
|
189
|
+
// 必填 用户授权令牌
|
|
190
|
+
token: "Y3UrQ1VfYWRtestYDHYUAStest",
|
|
191
|
+
// (可选) 连接建立后回调
|
|
192
|
+
onConnected: () => {},
|
|
193
|
+
// (可选) 连接建立失败时的回调
|
|
194
|
+
onConnectedFailed: () => {},
|
|
195
|
+
// (可选) 连接断开后回调
|
|
196
|
+
onDisConnected: () => {},
|
|
197
|
+
//(可选) 无法获取用户麦克风时
|
|
198
|
+
onGetUserMediaFailed: () => {},
|
|
199
|
+
// (可选) 指定请求url的前缀 方便代理请求
|
|
200
|
+
// apiPrefix: "/test_api/prefix",
|
|
201
|
+
});
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Vue 示例**
|
|
205
|
+
|
|
206
|
+
```vue
|
|
207
|
+
<template>
|
|
208
|
+
<div ref="testRef" class="container"></div>
|
|
209
|
+
<div ref="test2Ref" class="container2"></div>
|
|
210
|
+
<button @click="close">关闭</button>
|
|
211
|
+
</template>
|
|
212
|
+
|
|
213
|
+
<script lang="ts">
|
|
214
|
+
import { defineComponent, onMounted, ref } from "vue";
|
|
215
|
+
import { PuPlayer, IPuPlayerInstance } from "@besovideo/webrtc-player";
|
|
216
|
+
import "@besovideo/webrtc-player/dist/main.es.css";
|
|
217
|
+
|
|
218
|
+
export default defineComponent({
|
|
219
|
+
name: "Test",
|
|
220
|
+
props: {
|
|
221
|
+
// 设备id号
|
|
222
|
+
puId: {
|
|
223
|
+
type: String,
|
|
224
|
+
required: true,
|
|
225
|
+
},
|
|
226
|
+
// 设备通道号
|
|
227
|
+
index: {
|
|
228
|
+
type: Number,
|
|
229
|
+
required: true,
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
setup(props) {
|
|
233
|
+
const testRef = ref(null);
|
|
234
|
+
const test2Ref = ref(null);
|
|
235
|
+
const instanceRef = ref<IPuPlayerInstance | null>(null);
|
|
236
|
+
|
|
237
|
+
const init = async () => {
|
|
238
|
+
const { instance } = PuPlayer({
|
|
239
|
+
container: testRef.value,
|
|
240
|
+
puOption: { id: props.puId, index: props.index },
|
|
241
|
+
token:
|
|
242
|
+
"Y3UrQ1VfYWRtaW4rYWRtaW4rMTQzOSsxOTMwMTUrMTYyNTIwMjU3OCthN2I0Y2JiZDliMzkwZWUy",
|
|
243
|
+
});
|
|
244
|
+
console.log("初始化播放器完成:", instance);
|
|
245
|
+
instanceRef.value = instance;
|
|
246
|
+
|
|
247
|
+
try {
|
|
248
|
+
await instance.open();
|
|
249
|
+
} catch (e) {}
|
|
250
|
+
|
|
251
|
+
setTimeout(() => {
|
|
252
|
+
// 测试移动到另一个容器内
|
|
253
|
+
console.log("移动节点");
|
|
254
|
+
instance.moveTo(test2Ref.value);
|
|
255
|
+
}, 5000);
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
onMounted(() => {
|
|
259
|
+
init();
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
return {
|
|
263
|
+
testRef,
|
|
264
|
+
test2Ref,
|
|
265
|
+
close: () => instanceRef.value?.close(),
|
|
266
|
+
};
|
|
267
|
+
},
|
|
268
|
+
});
|
|
269
|
+
</script>
|
|
270
|
+
|
|
271
|
+
<style lang="scss" scoped>
|
|
272
|
+
.container {
|
|
273
|
+
height: 300px;
|
|
274
|
+
}
|
|
275
|
+
</style>
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## 开发 Dev
|
|
279
|
+
|
|
280
|
+
```shell
|
|
281
|
+
# 开发运行
|
|
282
|
+
yarn
|
|
283
|
+
yarn start
|
|
284
|
+
|
|
285
|
+
# 打包和发布
|
|
286
|
+
make publish
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
[环境变量切换方式](https://github.com/entropitor/dotenv-cli/pull/44)
|
package/dist/main.es.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.bvplayer-common-flex-space{display:inline-block;flex:1}.bvplayer-icon{display:inline-block;height:22px;width:100%;vertical-align:middle}.bvplayer-icon svg{height:100%;width:100%}.bvplayer-modal{position:absolute;top:0;left:0;padding:12px 16px;font-size:14px;border:1px solid #2b303b;border-radius:3px;background:rgba(22,27,29,.8);color:#fff;box-shadow:0 0 20px -6px #000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;visibility:hidden;opacity:0;transform:scale(0);will-change:transform,opacity;transition:all .3s cubic-bezier(.6,-.28,.735,.045)}.bvplayer-modal.bvplayer-common-is-visible{visibility:visible;opacity:1;transform:scale(1);transition:all .2s cubic-bezier(.785,.135,.15,.86)}.bvplayer-modal--center{top:50%;left:50%;margin:auto;transform:translate(-50%,-50%) scale(0)}.bvplayer-modal--center.bvplayer-common-is-visible{transform:translate(-50%,-50%)}.bvplayer-modal_title-bar{display:flex;justify-content:space-between;margin-bottom:8px;font-size:16px}.bvplayer-modal_title-bar_close{cursor:pointer}.bvplayer-modal_body{padding:8px;overflow:hidden;overflow-y:auto}.bvplayer-spinner{position:absolute;top:0;left:0;height:100%;width:100%}.bvplayer-spinner>span{display:inline-block;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIg0KICAgICB2aWV3Qm94PSIwIDAgMjQgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUwIDUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCiAgICAgICAgPHJlY3QgeD0iMCIgeT0iNy42NDE2IiB3aWR0aD0iNCIgaGVpZ2h0PSIxNC43MTY4IiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMHMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIHZhbHVlcz0iMTA7IDIwOyAxMCIgYmVnaW49IjBzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjBzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICA8L3JlY3Q+DQogICAgPHJlY3QgeD0iOCIgeT0iNS4xNDE2IiB3aWR0aD0iNCIgaGVpZ2h0PSIxOS43MTY4IiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMC4xNXMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJoZWlnaHQiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIxMDsgMjA7IDEwIiBiZWdpbj0iMC4xNXMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiPjwvYW5pbWF0ZT4NCiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjAuMTVzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDwvcmVjdD4NCiAgICA8cmVjdCB4PSIxNiIgeT0iNy4zNTg0IiB3aWR0aD0iNCIgaGVpZ2h0PSIxNS4yODMyIiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMC4zcyIgZHVyPSIwLjZzIg0KICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyAyMDsgMTAiIGJlZ2luPSIwLjNzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIxMDsgNTsgMTAiIGJlZ2luPSIwLjNzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDwvcmVjdD4NCiAgICAgIDwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIg0KICAgICB2aWV3Qm94PSIwIDAgMjQgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUwIDUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCiAgICAgICAgPHJlY3QgeD0iMCIgeT0iNy42NDE2IiB3aWR0aD0iNCIgaGVpZ2h0PSIxNC43MTY4IiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMHMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIHZhbHVlcz0iMTA7IDIwOyAxMCIgYmVnaW49IjBzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjBzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICA8L3JlY3Q+DQogICAgPHJlY3QgeD0iOCIgeT0iNS4xNDE2IiB3aWR0aD0iNCIgaGVpZ2h0PSIxOS43MTY4IiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMC4xNXMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJoZWlnaHQiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIxMDsgMjA7IDEwIiBiZWdpbj0iMC4xNXMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiPjwvYW5pbWF0ZT4NCiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjAuMTVzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDwvcmVjdD4NCiAgICA8cmVjdCB4PSIxNiIgeT0iNy4zNTg0IiB3aWR0aD0iNCIgaGVpZ2h0PSIxNS4yODMyIiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMC4zcyIgZHVyPSIwLjZzIg0KICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyAyMDsgMTAiIGJlZ2luPSIwLjNzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIxMDsgNTsgMTAiIGJlZ2luPSIwLjNzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDwvcmVjdD4NCiAgICAgIDwvc3ZnPg==)}.bvplayer-spinner>span svg{height:100%}.bvplayer-mask{height:100%;width:100%;position:absolute;top:0;left:0;display:grid;align-content:center;justify-content:center;place-content:center;background-color:#000;color:#fff;font-size:14px}.bvplayer-slider{cursor:pointer;position:relative;width:100%;height:3px;line-height:3px;background:#aaa;transition:all .3s ease-in-out}.bvplayer-slider_inner{position:absolute;bottom:0;left:0;height:100%;transition:all .1s ease;background:#fff}.bvplayer-slider_thumb{cursor:pointer;position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;transition:all .3s ease-in-out;background:#fff}.bvplayer-slider_suffix{position:absolute;visibility:visible;display:inline-block;width:calc(100% + 28px);text-align:right;color:#fff;opacity:.8;font-size:12px}.bvplayer-controller{position:absolute;bottom:0;left:0;right:0;width:100%;height:98px;color:#fff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;visibility:hidden;opacity:0;transform:translateY(100%);will-change:visibility,opacity,transform;transition:all .3s cubic-bezier(.455,.03,.515,.955)}.bvplayer-controller.bvplayer-common-is-visible{visibility:visible;opacity:1;transform:translateY(0)}.bvplayer-controller_mask{position:absolute;bottom:0;height:100%;width:100%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.bvplayer-controller_inner{position:absolute;bottom:0;left:0;right:0;width:100%;height:41px;padding:0 20px;display:flex;align-items:stretch;justify-content:space-between}.bvplayer-controller_inner_bar{display:block}.bvplayer-controller_inner_bar *{vertical-align:middle}.bvplayer-controller_inner_left{cursor:default}.bvplayer-controller_inner_right{cursor:default}.bvplayer-controller_button{cursor:pointer;display:inline-block;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px;height:100%;border:none;outline:none;padding:0;background:none;color:inherit}.bvplayer-controller_button:not(:last-child){margin-right:8px}.bvplayer-controller_button>*{transition:all .2s ease-in-out;opacity:.8}.bvplayer-controller_button:hover>*{opacity:1}.bvplayer-controller_volume{display:inline-block}.bvplayer-controller_volume--active .bvplayer-slider,.bvplayer-controller_volume:hover .bvplayer-slider{width:45px!important}.bvplayer-controller_volume--active .bvplayer-slider_thumb,.bvplayer-controller_volume:hover .bvplayer-slider_thumb{transform:scale(1)!important}.bvplayer-controller_volume--active .bvplayer-slider_suffix,.bvplayer-controller_volume:hover .bvplayer-slider_suffix{visibility:visible}.bvplayer-controller_volume .bvplayer-controller_button{margin-right:5px}.bvplayer-controller_volume .bvplayer-slider{display:inline-block;width:0}.bvplayer-controller_volume .bvplayer-slider_thumb{transform:scale(0)}.bvplayer-controller_volume .bvplayer-slider_suffix{visibility:hidden}.bvplayer-video{display:block;pointer-events:none;box-sizing:border-box;width:100%;height:100%}.bvplayer-player{position:relative;height:100%;width:100%;background-color:#000;overflow:hidden}.bvplayer-player *{box-sizing:border-box}.bvplayer-player .bvplayer-video{position:absolute}.bvplayer-player .bvplayer-modal{min-width:120px;min-height:100px}.bvplayer-player-fit--contain .bvplayer-video{-o-object-fit:contain;object-fit:contain}.bvplayer-player-fit--fill .bvplayer-video{-o-object-fit:fill;object-fit:fill}.bvplayer-player-fit--cover .bvplayer-video{-o-object-fit:cover;object-fit:cover}.bvplayer-player-fit--scale-down .bvplayer-video{-o-object-fit:scale-down;object-fit:scale-down}.bvplayer-player-fit--none .bvplayer-video{-o-object-fit:none;object-fit:none}.bvplayer-player_info-modal_content{width:280px;min-height:180px;display:flex;flex-direction:column}.bvplayer-player_info-modal_section:not(:last-child){margin-bottom:16px}.bvplayer-player_info-modal_section_title{display:inline-block;font-weight:bold;font-size:12px;margin-bottom:8px;margin-left:16px}.bvplayer-player_info-modal_section_main{width:100%;display:flex;flex-direction:column;align-items:end}.bvplayer-player_info-modal_list{min-width:210px;font-size:12px}.bvplayer-player_info-modal_list_item{white-space:nowrap}.bvplayer-player_info-modal_list_item:not(:last-child){margin-bottom:8px}.bvplayer-player_info-modal_list_item_label{display:inline-block;width:90px;margin-right:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.bvplayer-player_info-modal_list_item_value{display:inline-block;white-space:normal;word-break:break-all}
|
|
1
|
+
.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:currentColor;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:currentColor;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:currentColor;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:currentColor;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-animation=shift-away][data-state=hidden]{opacity:0}.tippy-box[data-animation=shift-away][data-state=hidden][data-placement^=top]{transform:translateY(10px)}.tippy-box[data-animation=shift-away][data-state=hidden][data-placement^=bottom]{transform:translateY(-10px)}.tippy-box[data-animation=shift-away][data-state=hidden][data-placement^=left]{transform:translateX(10px)}.tippy-box[data-animation=shift-away][data-state=hidden][data-placement^=right]{transform:translateX(-10px)}.bvplayer-common-flex-space{display:inline-block;flex:1}.tippy-box[data-theme~=bvplayer]{background-color:#2e3e4e;color:#fffc;padding:0;margin:0}.tippy-box[data-theme~=bvplayer] .tippy-content{font-size:12px}.tippy-box[data-theme~=bvplayer] .tippy-arrow{outline:none}.tippy-box[data-theme~=bvplayer][data-placement^=right] .tippy-content{padding:0 5px}.tippy-box[data-theme~=bvplayer][data-placement^=right] .tippy-arrow:before{transform:translateY(-2px) scale(.65);border-right-color:#2e3e4e}.tippy-box[data-theme~=bvplayer][data-placement^=top] .tippy-content{padding:3px 5px}.tippy-box[data-theme~=bvplayer][data-placement^=top] .tippy-arrow:before{border-top-color:#2e3e4e}.bvplayer-icon{display:inline-block;height:22px;width:100%;vertical-align:middle}.bvplayer-icon svg{height:100%;width:100%}.bvplayer-button{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;border:0;line-height:0;display:inline-block;padding:3px 5px;border-radius:5px;color:inherit}.bvplayer-button .bvplayer-icon{height:1em}.bvplayer-button--text{background:none}.bvplayer-button--default{outline:none}.bvplayer-button--primary{color:#fffc;background-color:#2e3e4e99}.bvplayer-input{font-size:inherit;font-family:inherit;padding:2px 4px;background-color:#fff;border:1px solid #8b8a8b;border-radius:3px;transition:box-shadow .18s ease-in-out}.bvplayer-input:not(textarea){line-height:1}.bvplayer-input[readonly]{cursor:not-allowed;border-style:dotted;color:#777}.bvplayer-input[disabled]{border-color:#ccc;background-color:#eee;cursor:not-allowed}.bvplayer-input:focus{border-color:#68747d;box-shadow:0 0 3px 1px #d5d9dc80;outline:1px solid transparent}.bvplayer-modal{position:absolute;top:0;left:0;padding:12px 16px;font-size:14px;border:1px solid #2b303b;border-radius:3px;background:rgba(22,27,29,.8);color:#fff;box-shadow:0 0 20px -6px #000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;visibility:hidden;opacity:0;transform:scale(0);will-change:transform,opacity;transition:all .3s cubic-bezier(.6,-.28,.735,.045)}.bvplayer-modal.bvplayer-common-is-visible{visibility:visible;opacity:1;transform:scale(1);transition:all .2s cubic-bezier(.785,.135,.15,.86)}.bvplayer-modal--center{top:50%;left:50%;margin:auto;transform:translate(-50%,-50%) scale(0)}.bvplayer-modal--center.bvplayer-common-is-visible{transform:translate(-50%,-50%)}.bvplayer-modal_title-bar{display:flex;justify-content:space-between;margin-bottom:8px;font-size:16px}.bvplayer-modal_title-bar_close{cursor:pointer}.bvplayer-modal_body{padding:8px;overflow:hidden;overflow-y:auto}.bvplayer-spinner{position:absolute;top:0;left:0;height:100%;width:100%}.bvplayer-spinner>span{display:inline-block;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIg0KICAgICB2aWV3Qm94PSIwIDAgMjQgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUwIDUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCiAgICAgICAgPHJlY3QgeD0iMCIgeT0iNy42NDE2IiB3aWR0aD0iNCIgaGVpZ2h0PSIxNC43MTY4IiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMHMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIHZhbHVlcz0iMTA7IDIwOyAxMCIgYmVnaW49IjBzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjBzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICA8L3JlY3Q+DQogICAgPHJlY3QgeD0iOCIgeT0iNS4xNDE2IiB3aWR0aD0iNCIgaGVpZ2h0PSIxOS43MTY4IiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMC4xNXMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJoZWlnaHQiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIxMDsgMjA7IDEwIiBiZWdpbj0iMC4xNXMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiPjwvYW5pbWF0ZT4NCiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjAuMTVzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDwvcmVjdD4NCiAgICA8cmVjdCB4PSIxNiIgeT0iNy4zNTg0IiB3aWR0aD0iNCIgaGVpZ2h0PSIxNS4yODMyIiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMC4zcyIgZHVyPSIwLjZzIg0KICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyAyMDsgMTAiIGJlZ2luPSIwLjNzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIxMDsgNTsgMTAiIGJlZ2luPSIwLjNzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDwvcmVjdD4NCiAgICAgIDwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIg0KICAgICB2aWV3Qm94PSIwIDAgMjQgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUwIDUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCiAgICAgICAgPHJlY3QgeD0iMCIgeT0iNy42NDE2IiB3aWR0aD0iNCIgaGVpZ2h0PSIxNC43MTY4IiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMHMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIHZhbHVlcz0iMTA7IDIwOyAxMCIgYmVnaW49IjBzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjBzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICA8L3JlY3Q+DQogICAgPHJlY3QgeD0iOCIgeT0iNS4xNDE2IiB3aWR0aD0iNCIgaGVpZ2h0PSIxOS43MTY4IiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMC4xNXMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlPg0KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJoZWlnaHQiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIxMDsgMjA7IDEwIiBiZWdpbj0iMC4xNXMiIGR1cj0iMC42cyINCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiPjwvYW5pbWF0ZT4NCiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjAuMTVzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDwvcmVjdD4NCiAgICA8cmVjdCB4PSIxNiIgeT0iNy4zNTg0IiB3aWR0aD0iNCIgaGVpZ2h0PSIxNS4yODMyIiBvcGFjaXR5PSIwLjIiPg0KICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMC4zcyIgZHVyPSIwLjZzIg0KICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyAyMDsgMTAiIGJlZ2luPSIwLjNzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIxMDsgNTsgMTAiIGJlZ2luPSIwLjNzIiBkdXI9IjAuNnMiDQogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGU+DQogICAgICAgIDwvcmVjdD4NCiAgICAgIDwvc3ZnPg==)}.bvplayer-spinner>span svg{height:100%}.bvplayer-mask{height:100%;width:100%;position:absolute;top:0;left:0;display:grid;align-content:center;justify-content:center;place-content:center;background-color:#000;color:#fff;font-size:14px}.bvplayer-slider{cursor:pointer;position:relative;width:100%;height:3px;line-height:3px;background:#aaa;transition:all .3s ease-in-out}.bvplayer-slider_inner{position:absolute;bottom:0;left:0;height:100%;transition:all .1s ease;background:#fff}.bvplayer-slider_thumb{cursor:pointer;position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;transition:all .3s ease-in-out;background:#fff}.bvplayer-slider_suffix{position:absolute;visibility:visible;display:inline-block;width:calc(100% + 28px);text-align:right;color:#fff;opacity:.8;font-size:12px}.bvplayer-video{display:block;box-sizing:border-box;width:100%;height:100%}.bvplayer-video_screen{pointer-events:none;width:100%;height:100%}.bvplayer-controller{position:absolute;bottom:0;left:0;right:0;width:100%;height:98px;color:#fff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;visibility:hidden;opacity:0;transform:translateY(100%);will-change:visibility,opacity,transform;transition:all .3s cubic-bezier(.455,.03,.515,.955)}.bvplayer-controller.bvplayer-common-is-visible{visibility:visible;opacity:1;transform:translateY(0)}.bvplayer-controller_mask{position:absolute;bottom:0;height:100%;width:100%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.bvplayer-controller_inner{position:absolute;bottom:0;left:0;right:0;width:100%;height:41px;padding:0 20px;display:flex;align-items:stretch;justify-content:space-between}.bvplayer-controller_inner_bar{display:block}.bvplayer-controller_inner_bar *{vertical-align:middle;pointer-events:auto}.bvplayer-controller_inner_left{cursor:default}.bvplayer-controller_inner_right{cursor:default}.bvplayer-controller_button{cursor:pointer;display:inline-block;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px;height:100%;border:none;outline:none;padding:0;background:none;color:inherit}.bvplayer-controller_button:not(:last-child){margin-right:8px}.bvplayer-controller_button>*{transition:all .2s ease-in-out;opacity:.8}.bvplayer-controller_button:hover>*{opacity:1}.bvplayer-controller_volume{display:inline-block}.bvplayer-controller_volume--active .bvplayer-slider,.bvplayer-controller_volume:hover .bvplayer-slider{width:45px!important}.bvplayer-controller_volume--active .bvplayer-slider_thumb,.bvplayer-controller_volume:hover .bvplayer-slider_thumb{transform:scale(1)!important}.bvplayer-controller_volume--active .bvplayer-slider_suffix,.bvplayer-controller_volume:hover .bvplayer-slider_suffix{visibility:visible}.bvplayer-controller_volume .bvplayer-controller_button{margin-right:5px}.bvplayer-controller_volume .bvplayer-slider{display:inline-block;width:0}.bvplayer-controller_volume .bvplayer-slider_thumb{transform:scale(0)}.bvplayer-controller_volume .bvplayer-slider_suffix{visibility:hidden}.bvplayer-ptz{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;visibility:hidden}.bvplayer-ptz.bvplayer-common-is-visible{visibility:visible}.bvplayer-ptz.bvplayer-common-is-visible .bvplayer-ptz_control{opacity:1;transform:translate(-50%,0)}.bvplayer-ptz-control-button{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;border:0;padding:3px 5px;border-radius:3px;overflow:hidden;color:#fffc;opacity:1;transform:scale(1);transition:all .3s cubic-bezier(.075,.82,.165,1)}.bvplayer-ptz-control-button--press{transform:scale(.9);opacity:.8}.bvplayer-ptz-speed-slider{width:20px;height:100%;display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bvplayer-ptz-speed-slider_header,.bvplayer-ptz-speed-slider_footer{position:relative;font-size:12px;margin-bottom:1px}.bvplayer-ptz-speed-slider_header:before,.bvplayer-ptz-speed-slider_footer:before{content:"";position:absolute;bottom:0;left:0;width:100%;border-bottom:1px solid rgba(255,255,255,.45);transform:scaleX(.3)}.bvplayer-ptz-speed-slider_header:after,.bvplayer-ptz-speed-slider_footer:after{content:attr(data-text);position:absolute;font-size:12px;opacity:.8}.bvplayer-ptz-speed-slider_header:after{right:-10px;top:-7px}.bvplayer-ptz-speed-slider_footer:after{right:-20px;top:-10px}.bvplayer-ptz-speed-slider_main{height:100%;position:relative;overflow:hidden;text-align:center}.bvplayer-ptz-speed-slider-track{display:inline-block;width:2px;height:100%;background-color:#ffffff73;border-radius:3px}.bvplayer-ptz-speed-slider-thumb{cursor:pointer;display:inline-block;position:absolute;top:0;left:50%;transform:translateX(-50%);display:flex;padding:4px 5px;border-radius:2px;background-color:#2e3e4e;color:#fffc;box-shadow:#00000080 0 2px 4px,#00000040 0 2px 4px}.bvplayer-ptz-speed-slider-thumb span{display:inline-block;height:4px;width:1px;background-color:#fff}.bvplayer-ptz-speed-slider-thumb span:not(:last-child){margin-right:3px}.bvplayer-ptz_control{opacity:0;pointer-events:auto;position:absolute;left:50%;bottom:40px;transform:translate(-50%,calc(100% + 40px));will-change:transform opacity;transition:all .3s cubic-bezier(.455,.03,.515,.955);display:flex;justify-content:space-between;height:25%;min-height:110px;max-height:150px;width:60%;max-width:380px;overflow:hidden;padding:8px 12px;font-size:12px;color:#fff;background:rgba(22,27,29,.4);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.2);border-radius:3px;box-shadow:0 1px 5px #000000b3}.bvplayer-ptz_control>:not(:last-child){margin-right:8px}.bvplayer-ptz_control_direction-grid{position:relative;display:grid;grid-template-rows:repeat(3,minmax(25px,1fr));grid-template-columns:repeat(3,minmax(25px,1fr));grid-gap:8px;gap:8px;width:35%;min-width:100px;max-width:170px;overflow:hidden}.bvplayer-ptz_control_direction-grid_item{outline:none}.bvplayer-ptz_control_speed-option{flex:1;overflow:hidden;text-align:left;padding:6px 0}.bvplayer-ptz_control_camera-option{display:flex;flex-direction:column;justify-content:center;overflow:hidden}.bvplayer-ptz_control_camera-option_item{white-space:nowrap}.bvplayer-ptz_control_camera-option_item:not(:last-child){margin-bottom:8px}.bvplayer-ptz_control_camera-option_item_label{display:inline-block;width:40px;margin-right:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top;-moz-text-align-last:justify;text-align-last:justify}.bvplayer-ptz_control_camera-option_item_value{display:inline-block;white-space:normal;word-break:break-all}.bvplayer-ptz_control_camera-option_item_value>:not(:last-child){margin-right:8px}.bvplayer-ptz_control_direction-button{height:100%;width:100%;max-width:60px;max-height:60px;background-color:#2e3e4ecc;box-shadow:#00000029 0 3px 6px,#0000003b 0 3px 6px}.bvplayer-ptz_control_direction-button .bvplayer-icon{height:50%;min-height:18px}.bvplayer-ptz_control_direction-button.bvplayer-ptz-control-button--press{box-shadow:#0000000d 0 0 0 1px}.bvplayer-ptz_control_operator-button{padding:2px;background-color:#2e3e4ecc;box-shadow:#00000029 0 3px 6px,#0000003b 0 3px 6px}.bvplayer-ptz_control_operator-button .bvplayer-icon{height:16px}.bvplayer-ptz_control_close-button{position:absolute;top:2px;right:2px;font-size:16px;padding:0;will-change:transform;transition:transform .3s}.bvplayer-ptz_control_close-button:hover{transform:scale(1.1)}.bvplayer-player{position:relative;height:100%;width:100%;background-color:#000;overflow:hidden}.bvplayer-player *{box-sizing:border-box}.bvplayer-player .bvplayer-video{position:absolute}.bvplayer-player .bvplayer-modal{min-width:120px;min-height:100px}.bvplayer-player-fit--contain .bvplayer-video_screen{-o-object-fit:contain;object-fit:contain}.bvplayer-player-fit--fill .bvplayer-video_screen{-o-object-fit:fill;object-fit:fill}.bvplayer-player-fit--cover .bvplayer-video_screen{-o-object-fit:cover;object-fit:cover}.bvplayer-player-fit--scale-down .bvplayer-video_screen{-o-object-fit:scale-down;object-fit:scale-down}.bvplayer-player-fit--none .bvplayer-video_screen{-o-object-fit:none;object-fit:none}.bvplayer-player_info-modal_content{width:280px;min-height:180px;display:flex;flex-direction:column}.bvplayer-player_info-modal_section:not(:last-child){margin-bottom:16px}.bvplayer-player_info-modal_section_title{display:inline-block;font-weight:bold;font-size:12px;margin-bottom:8px;margin-left:16px}.bvplayer-player_info-modal_section_main{width:100%;display:flex;flex-direction:column;align-items:end}.bvplayer-player_info-modal_list{min-width:210px;font-size:12px}.bvplayer-player_info-modal_list_item{white-space:nowrap}.bvplayer-player_info-modal_list_item:not(:last-child){margin-bottom:8px}.bvplayer-player_info-modal_list_item_label{display:inline-block;width:90px;margin-right:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.bvplayer-player_info-modal_list_item_value{display:inline-block;white-space:normal;word-break:break-all}
|