@ezuikit/player-theme 3.1.2-beta.4 → 3.1.3-beta.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 +337 -1
- package/dist/constant.js +8 -4
- package/dist/index.cjs +972 -795
- package/dist/index.esm.js +972 -795
- package/dist/index.umd.js +1194 -1362
- package/dist/style.css +5 -3
- package/dist/style.js +2 -2
- package/dist/types/index.d.ts +116 -65
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1 +1,337 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @ezuikit/player-theme
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@ezuikit/player-theme)
|
|
4
|
+
[](https://www.npmjs.com/package/@ezuikit/player-theme)
|
|
5
|
+
|
|
6
|
+
萤石播放器主题(皮肤)库,负责播放器的 UI 展示与交互:头部/底部控件栏、各类控件(播放、音量、云台、清晰度、录制、对讲、时间轴、日历等)、封面、加载动画与消息提示。支持 `ezopen` / `flv` / `hls` / `mp4` / `ezhls` 多种流类型,内置多语言(中/英)与自定义主题模板。
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## 特性
|
|
10
|
+
|
|
11
|
+
- 丰富的内置控件,按模板自动排布,容器尺寸变化时自动折叠到「更多」面板
|
|
12
|
+
- 6 套内置模板 + 平台自定义模板 + 完全自定义 `themeData`
|
|
13
|
+
- PC / 移动端适配,支持全屏、屏幕旋转、双击全屏
|
|
14
|
+
- 基于 [eventemitter3](https://github.com/primus/eventemitter3) 的事件系统,事件类型完备
|
|
15
|
+
- 内置中文、英文语言包,支持自定义多语言
|
|
16
|
+
- 提供完整的 TypeScript 类型定义
|
|
17
|
+
|
|
18
|
+
## 安装
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# npm
|
|
22
|
+
npm install @ezuikit/player-theme
|
|
23
|
+
|
|
24
|
+
# yarn
|
|
25
|
+
yarn add @ezuikit/player-theme
|
|
26
|
+
|
|
27
|
+
# pnpm
|
|
28
|
+
pnpm add @ezuikit/player-theme
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 快速开始
|
|
32
|
+
|
|
33
|
+
### 模块化(ESM / 打包工具)
|
|
34
|
+
|
|
35
|
+
```js
|
|
36
|
+
import '@ezuikit/player-theme/dist/style.css';
|
|
37
|
+
import { Theme } from '@ezuikit/player-theme';
|
|
38
|
+
|
|
39
|
+
const theme = new Theme({
|
|
40
|
+
container: () => document.querySelector('.player'),
|
|
41
|
+
type: 'ezopen',
|
|
42
|
+
url: 'ezopen://open.ys7.com/BC7799091/1.cloud.rec',
|
|
43
|
+
accessToken: 'your-access-token',
|
|
44
|
+
template: 'pcRec',
|
|
45
|
+
language: 'zh',
|
|
46
|
+
scaleMode: 1,
|
|
47
|
+
height: 400,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
// 事件监听
|
|
51
|
+
theme.on(Theme.EVENTS.play, (playing) => {
|
|
52
|
+
console.log('playing:', playing);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// 销毁
|
|
56
|
+
// theme.destroy();
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### script 标签(UMD / CDN)
|
|
60
|
+
|
|
61
|
+
UMD 包会在全局暴露 `Theme` 类(即 `window.Theme`)。
|
|
62
|
+
|
|
63
|
+
```html
|
|
64
|
+
<link rel="stylesheet" href="./dist/style.css" />
|
|
65
|
+
<script src="./dist/index.umd.js"></script>
|
|
66
|
+
<script>
|
|
67
|
+
const theme = new Theme({
|
|
68
|
+
container: () => document.querySelector('.player'),
|
|
69
|
+
type: 'flv',
|
|
70
|
+
});
|
|
71
|
+
</script>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 入口与子路径导出
|
|
75
|
+
|
|
76
|
+
| 导入路径 | 说明 |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `@ezuikit/player-theme` | 主入口(ESM: `dist/index.esm.js`,CJS: `dist/index.cjs`,UMD: `dist/index.umd.js`) |
|
|
79
|
+
| `@ezuikit/player-theme/dist/style.css` | 样式文件(必须引入) |
|
|
80
|
+
| `@ezuikit/player-theme/dist/style.js` | 以 JS 形式注入样式 |
|
|
81
|
+
| `@ezuikit/player-theme/dist/constant.js` | 常量(`EVENTS` 事件名、`THEME_SCALE_MODE_TYPE` 填充模式、`THEME_PROPS`、`PREFIX_CLASS` 等) |
|
|
82
|
+
|
|
83
|
+
### 具名导出
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
import {
|
|
87
|
+
Theme, // 播放器主题主类
|
|
88
|
+
EVENTS, // 事件名常量(等价于 Theme.EVENTS)
|
|
89
|
+
Control, // 控件基类
|
|
90
|
+
Play, Volume, Fullscreen, Loading, Message, Poster, Rec, Utils,
|
|
91
|
+
} from '@ezuikit/player-theme';
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
同时导出以下 TypeScript 类型:`ThemeOptions`、`ThemeEventMap`、`ThemeEventName`、`ThemeEventHandler`、`ThemeEventArgs`、`IThemeData`、`IThemeDataItem`、`ControlItem`、`ControlOptions`、`VolumeOptions`、`PosterOptions`、`LoadingOptions`、`MessageOptions`、`PlayOptions`、`RecOptions`、`FullscreenOptions`、`FullscreenChangeInfo`、`AudioInfo`、`VideoInfo`、`ResizeInfo`、`ScreenOrientation`、`OrientationAngle`、`PtzErrorInfo` 等。
|
|
95
|
+
|
|
96
|
+
## 构造配置项(ThemeOptions)
|
|
97
|
+
|
|
98
|
+
### 基础
|
|
99
|
+
|
|
100
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
101
|
+
| --- | --- | --- | --- |
|
|
102
|
+
| `container` | `HTMLElement \| (() => HTMLElement)` | — | **必填**,播放器挂载容器 |
|
|
103
|
+
| `type` | `'ezopen' \| 'flv' \| 'hls' \| 'mp4' \| 'ezhls'` | — | **必填**,播放器/流类型 |
|
|
104
|
+
| `url` | `string` | — | 播放地址 |
|
|
105
|
+
| `template` | `ThemeTemplateType \| string` | — | 模板名或平台自定义模板 ID,优先级高于 `themeData` |
|
|
106
|
+
| `themeData` | `IThemeData \| null` | — | 自定义主题数据,`null` 时不展示主题 |
|
|
107
|
+
| `scaleMode` | `0 \| 1 \| 2` | `0` | 画面填充模式,见下方说明 |
|
|
108
|
+
| `autoPlay` | `boolean` | `false` | 是否自动播放 |
|
|
109
|
+
| `width` | `number \| string` | 容器宽 | 容器宽度(数字默认 px,支持 `"80%"`、`"50vw"`) |
|
|
110
|
+
| `height` | `number \| string` | 容器高 | 容器高度 |
|
|
111
|
+
| `language` | `'zh' \| 'en' \| string` | `'zh'` | 语言 |
|
|
112
|
+
| `locales` | `Record<string, I18nTranslation>` | — | 自定义多语言,如 `{ zh: {}, en: {} }` |
|
|
113
|
+
| `muted` | `boolean` | `false` | 静音(优先级低于 `volumeOptions.muted`) |
|
|
114
|
+
| `volume` | `number` | `0.8` | 音量(优先级低于 `volumeOptions.volume`) |
|
|
115
|
+
| `spaceId` | `string \| number` | — | 指定回放空间 ID(优先级低于 url 中的 spaceId) |
|
|
116
|
+
| `dblClickFullscreen` | `boolean` | `true` | 双击全屏,仅 PC |
|
|
117
|
+
| `loggerOptions` | `LoggerOptions` | — | 日志配置,如 `{ level: 'INFO', showTime: true }` |
|
|
118
|
+
| `onInitializing` | `(theme: Theme) => void` | — | 初始化回调,可在此提前监听控件挂载事件 |
|
|
119
|
+
|
|
120
|
+
**填充模式 `scaleMode`:**
|
|
121
|
+
|
|
122
|
+
| 值 | 名称 | 说明 |
|
|
123
|
+
| --- | --- | --- |
|
|
124
|
+
| `0` | full | 画面完全填充容器,可能被拉伸 |
|
|
125
|
+
| `1` | auto | 等比缩放,大边对齐容器,可能有黑边 |
|
|
126
|
+
| `2` | fullAuto | 等比缩放铺满容器,无黑边但画面显示不全 |
|
|
127
|
+
|
|
128
|
+
### 控件配置
|
|
129
|
+
|
|
130
|
+
每个控件都可单独配置;将对应字段设为 `null` 即可不渲染该控件。
|
|
131
|
+
|
|
132
|
+
| 参数 | 说明 |
|
|
133
|
+
| --- | --- |
|
|
134
|
+
| `playOptions` | 播放/暂停控件 |
|
|
135
|
+
| `volumeOptions` | 音量控件,如 `{ volume: 0.8, muted: false, onChange, onOpenChange }` |
|
|
136
|
+
| `capturePictureOptions` | 截图控件,`type: 'download' \| 'base64' \| 'blob'`(默认 `download`),`quality` 默认 `0.9` |
|
|
137
|
+
| `ptzOptions` | 云台控件,如 `{ speed: 2 }` |
|
|
138
|
+
| `recordOptions` | 录制控件,`maxDuration` 默认 `3600`(秒) |
|
|
139
|
+
| `talkOptions` | 对讲控件 |
|
|
140
|
+
| `zoomOptions` | 电子放大控件,如 `{ max: 10 }` |
|
|
141
|
+
| `definitionOptions` | 清晰度控件 |
|
|
142
|
+
| `speedOptions` | 倍速控件 |
|
|
143
|
+
| `recOptions` | 回放类型切换控件 |
|
|
144
|
+
| `recListOptions` | 录像列表控件(`@since 3.1.1`) |
|
|
145
|
+
| `fullscreenOptions` / `globalFullscreenOptions` | 全屏 / 全局全屏控件 |
|
|
146
|
+
| `dateOptions` / `timeOptions` / `timeLineOptions` | 日历 / 时间 / 时间轴控件 |
|
|
147
|
+
| `posterOptions` | 封面控件,如 `{ poster: 'https://...' }` |
|
|
148
|
+
| `loadingOptions` | 加载动画控件,支持自定义 `render` |
|
|
149
|
+
| `messageOptions` | 消息提示控件 |
|
|
150
|
+
| `deviceOptions` | 设备信息控件 |
|
|
151
|
+
| `pauseOptions` | 暂停控件 |
|
|
152
|
+
| `mobileExtendOptions` | 移动端扩展,如 `{ controls: ['timeLine', 'date'] }`,`null` 时关闭 |
|
|
153
|
+
|
|
154
|
+
## 模板
|
|
155
|
+
|
|
156
|
+
内置模板名(`Theme.TEMPLATES`):
|
|
157
|
+
|
|
158
|
+
| 模板 | 说明 |
|
|
159
|
+
| --- | --- |
|
|
160
|
+
| `pcLive` | PC 直播 |
|
|
161
|
+
| `pcRec` | PC 回放 |
|
|
162
|
+
| `mobileLive` | 移动端直播 |
|
|
163
|
+
| `mobileRec` | 移动端回放 |
|
|
164
|
+
| `security` | 安防 |
|
|
165
|
+
| `voice` | 语音 |
|
|
166
|
+
|
|
167
|
+
```js
|
|
168
|
+
const theme = new Theme({
|
|
169
|
+
container: () => document.querySelector('.player'),
|
|
170
|
+
type: 'ezopen',
|
|
171
|
+
template: 'pcLive', // 使用内置模板
|
|
172
|
+
});
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## 实例属性
|
|
176
|
+
|
|
177
|
+
`Theme` 实例提供以下只读/可写属性(部分变化会同步触发对应事件):
|
|
178
|
+
|
|
179
|
+
| 属性 | 类型 | 读写 | 说明 |
|
|
180
|
+
| --- | --- | --- | --- |
|
|
181
|
+
| `url` | `string` | 读写 | 播放地址 |
|
|
182
|
+
| `urlInfo` | `object` | 读 | 解析后的地址信息 |
|
|
183
|
+
| `width` / `height` | `number` | 读 | 容器宽/高(px) |
|
|
184
|
+
| `videoInfo` | `ThemeVideoInfo` | 读 | 视频信息(`@since 3.1.2`) |
|
|
185
|
+
| `videoWidth` / `videoHeight` | `number` | 读 | 视频分辨率宽/高(`@since 3.1.2`) |
|
|
186
|
+
| `playing` | `boolean` | 读写 | 播放状态 |
|
|
187
|
+
| `loading` | `boolean` | 读写 | 加载状态 |
|
|
188
|
+
| `volume` | `number` | 读写 | 音量 `[0, 1]` |
|
|
189
|
+
| `muted` | `boolean` | 读写 | 是否静音 |
|
|
190
|
+
| `zooming` | `boolean` | 读写 | 是否处于可缩放状态 |
|
|
191
|
+
| `zoom` | `number` | 读写 | 电子放大倍数(需 `zooming = true`) |
|
|
192
|
+
| `speed` | `number` | 读写 | 倍速 |
|
|
193
|
+
| `talking` | `boolean` | 读 | 对讲中 |
|
|
194
|
+
| `talkGain` | `number \| null` | 读 | 对讲增益,仅 ezopen |
|
|
195
|
+
| `recording` | `boolean` | 读 | 录制中,仅 ezopen |
|
|
196
|
+
| `ptzing` | `boolean` | 读 | 云台开启中 |
|
|
197
|
+
| `videoLevelAuto` | `boolean` | 读 | 是否自动清晰度 |
|
|
198
|
+
| `isCurrentFullscreen` | `boolean` | 读 | 当前容器是否全屏 |
|
|
199
|
+
| `orientationAngle` | `0 \| 90 \| 180 \| 270` | 读 | 屏幕旋转角度 |
|
|
200
|
+
| `hasHeaderMoreControl` / `hasFooterMoreControl` | `boolean` | 读 | 顶/底部是否展示「更多」按钮 |
|
|
201
|
+
| `isEzopen` | `boolean` | 读 | 是否私有流地址 |
|
|
202
|
+
| `isEzviz` | `boolean` | 读 | 是否萤石播放地址(`@since 3.1.2`) |
|
|
203
|
+
| `controls` | `Record<string, Control>` | 读 | 所有控件,命名规则 `${iconId}Control`,如 `theme.controls.volumeControl` |
|
|
204
|
+
|
|
205
|
+
## 实例方法
|
|
206
|
+
|
|
207
|
+
| 方法 | 签名 | 说明 |
|
|
208
|
+
| --- | --- | --- |
|
|
209
|
+
| `resize` | `(width?, height?) => void` | 调整播放器窗口大小,支持 `600` / `"600px"` / `"50%"` 等 |
|
|
210
|
+
| `fullscreen` | `() => Promise<void>` | 进入全屏(PC/移动端) |
|
|
211
|
+
| `exitFullscreen` | `() => Promise<void>` | 退出全屏 |
|
|
212
|
+
| `changeTheme` | `(themeData: IThemeData) => void` | 切换主题,传 `null` 清空主题 |
|
|
213
|
+
| `setPoster` | `(poster?: string) => void` | 设置封面(仅设置,`''` 时不展示) |
|
|
214
|
+
| `setScaleMode` | `(scaleMode: 0 \| 1 \| 2) => void` | 设置画面缩放模式(`@since 1.0.1`) |
|
|
215
|
+
| `setLoggerOptions` | `(options?: LoggerOptions) => void` | 动态设置日志配置 |
|
|
216
|
+
| `destroy` | `() => void` | 销毁实例(事件、控件等) |
|
|
217
|
+
|
|
218
|
+
此外,`Theme` 继承自 `EventEmitter`,可使用 `on` / `once` / `off` / `emit` / `removeAllListeners` 等方法。
|
|
219
|
+
|
|
220
|
+
```js
|
|
221
|
+
theme.resize('100%', 400);
|
|
222
|
+
theme.fullscreen();
|
|
223
|
+
theme.changeTheme(Theme.TEMPLATES.pcLive);
|
|
224
|
+
theme.setPoster('https://example.com/poster.jpg');
|
|
225
|
+
theme.destroy();
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## 事件
|
|
229
|
+
|
|
230
|
+
通过 `theme.on(eventName, handler)` 监听。事件名建议使用 `Theme.EVENTS` 常量,类型可参考 `ThemeEventMap`。
|
|
231
|
+
|
|
232
|
+
```js
|
|
233
|
+
theme.on(Theme.EVENTS.play, (playing) => {});
|
|
234
|
+
theme.on(Theme.EVENTS.loading, (loading) => {});
|
|
235
|
+
theme.on(Theme.EVENTS.volumechange, (volume, muted) => {});
|
|
236
|
+
theme.on(Theme.EVENTS.fullscreenChange, ({ isCurrentFullscreen, isFullscreen, isMobile }) => {});
|
|
237
|
+
|
|
238
|
+
// 控件挂载完成(首次需在 onInitializing 中监听)
|
|
239
|
+
theme.on(Theme.EVENTS.control.mountedControls, () => {});
|
|
240
|
+
|
|
241
|
+
// 生命周期
|
|
242
|
+
theme.on(Theme.EVENTS.theme.beforeDestroy, () => {});
|
|
243
|
+
theme.on(Theme.EVENTS.theme.destroyed, () => {});
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
常用事件:
|
|
247
|
+
|
|
248
|
+
| 事件 | 载荷 | 说明 |
|
|
249
|
+
| --- | --- | --- |
|
|
250
|
+
| `loading` | `(loading: boolean)` | 加载状态变化 |
|
|
251
|
+
| `play` | `(playing: boolean)` | 播放/暂停状态变化 |
|
|
252
|
+
| `firstFrameDisplay` | `()` | 首帧显示 |
|
|
253
|
+
| `volumechange` | `(volume: number, muted: boolean)` | 音量变化 |
|
|
254
|
+
| `zoomChange` | `(zoom: number)` | 缩放倍数变化 |
|
|
255
|
+
| `fullscreenChange` | `(info: FullscreenChangeInfo)` | 全屏状态变化 |
|
|
256
|
+
| `resize` | `(info: ResizeInfo)` | 容器尺寸变化 |
|
|
257
|
+
| `orientationChange` | `(angle: OrientationAngle)` | 屏幕旋转 |
|
|
258
|
+
| `changeTheme` | `(themeData: IThemeData \| null)` | 切换主题 |
|
|
259
|
+
| `recTypeChange` | `(type: string)` | 回放类型切换 |
|
|
260
|
+
| `definitionChange` | `(level: number, item?)` | 清晰度切换 |
|
|
261
|
+
| `speedChange` | `(speed: number, item?)` | 倍速切换 |
|
|
262
|
+
| `recordingChange` | `(recording: boolean)` | 录制状态变化 |
|
|
263
|
+
| `talkingChange` | `(talking: boolean)` | 对讲状态变化 |
|
|
264
|
+
| `message` | `(message: string, type: string, duration?: number)` | 统一消息提示 |
|
|
265
|
+
|
|
266
|
+
> 事件分为三类:对外事件(如 `play`)、控件事件(`Control.*`,通过 `Theme.EVENTS.control.*` 访问)、生命周期事件(`Theme.*`,通过 `Theme.EVENTS.theme.*` 访问)。完整列表见 `ThemeEventMap`。
|
|
267
|
+
|
|
268
|
+
## 静态成员
|
|
269
|
+
|
|
270
|
+
| 成员 | 说明 |
|
|
271
|
+
| --- | --- |
|
|
272
|
+
| `Theme.TEMPLATES` | 内置模板:`pcLive` / `pcRec` / `mobileLive` / `mobileRec` / `security` / `voice` |
|
|
273
|
+
| `Theme.EVENTS` | 事件名常量,含 `control` 与 `theme` 子对象 |
|
|
274
|
+
| `Theme.LOCALES` | 内置语言包 `{ zh, en }` |
|
|
275
|
+
| `Theme.THEME_VERSION` | 版本号字符串,如 `'3.1.2-beta.4'` |
|
|
276
|
+
|
|
277
|
+
## 自定义主题数据(IThemeData)
|
|
278
|
+
|
|
279
|
+
当不使用内置 `template` 时,可通过 `themeData` 完全自定义控件布局:
|
|
280
|
+
|
|
281
|
+
```js
|
|
282
|
+
const theme = new Theme({
|
|
283
|
+
container: () => document.querySelector('.player'),
|
|
284
|
+
type: 'ezopen',
|
|
285
|
+
themeData: {
|
|
286
|
+
autoFocus: 3, // 控件自动聚焦持续时间(秒),0 表示一直展示
|
|
287
|
+
header: {
|
|
288
|
+
btnList: [
|
|
289
|
+
{ iconId: 'deviceName', part: 'left' },
|
|
290
|
+
{ iconId: 'globalFullscreen', part: 'right' },
|
|
291
|
+
],
|
|
292
|
+
},
|
|
293
|
+
footer: {
|
|
294
|
+
btnList: [
|
|
295
|
+
{ iconId: 'play', part: 'left' },
|
|
296
|
+
{ iconId: 'volume', part: 'left' },
|
|
297
|
+
{ iconId: 'definition', part: 'right' },
|
|
298
|
+
{ iconId: 'fullscreen', part: 'right' },
|
|
299
|
+
],
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
});
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
可用控件 `iconId`:`play`、`volume`、`capturePicture`、`ptz`、`record`、`talk`、`broadcast`、`aiChat`、`live`、`recDropdown`、`recList`、`alarmMessage`、`zoom`、`definition`、`fullscreen`、`globalFullscreen`、`speed`、`date`、`time`、`timeLine`,以及特殊项 `deviceID`、`deviceName`、`rec`、`cloudRec`、`cloudRecord`。
|
|
306
|
+
|
|
307
|
+
## TypeScript
|
|
308
|
+
|
|
309
|
+
包内置类型定义(`dist/types/index.d.ts`),无需额外安装 `@types`。
|
|
310
|
+
|
|
311
|
+
```ts
|
|
312
|
+
import { Theme, ThemeOptions, ThemeEventMap } from '@ezuikit/player-theme';
|
|
313
|
+
|
|
314
|
+
const options: ThemeOptions = {
|
|
315
|
+
container: () => document.querySelector('.player')!,
|
|
316
|
+
type: 'flv',
|
|
317
|
+
scaleMode: 1,
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
const theme = new Theme(options);
|
|
321
|
+
|
|
322
|
+
// 事件处理函数类型可由 ThemeEventMap 推导
|
|
323
|
+
const onVolume: ThemeEventMap['volumechange'] = (volume, muted) => {};
|
|
324
|
+
theme.on(Theme.EVENTS.volumechange, onVolume);
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
## 示例
|
|
328
|
+
|
|
329
|
+
`examples/` 目录提供了可运行的示例:
|
|
330
|
+
|
|
331
|
+
- `examples/with-vue2.5` — Vue 2.5 + Vue CLI
|
|
332
|
+
- `examples/with-vue2.5.17` — Vue 2.5.17 + Webpack
|
|
333
|
+
- `examples/with-react-vite` — React 19 + Vite
|
|
334
|
+
|
|
335
|
+
## License
|
|
336
|
+
|
|
337
|
+
本项目基于 [MIT](https://opensource.org/licenses/MIT) 协议开源。
|
package/dist/constant.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* @ezuikit/player-theme v3.1.
|
|
3
|
-
* Copyright (c) 2026-08-16
|
|
2
|
+
* @ezuikit/player-theme v3.1.3-beta.1
|
|
3
|
+
* Copyright (c) 2026-08-19 16:47:24 Ezviz-OpenBiz
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
@@ -33,7 +33,9 @@ var THEME_PROPS = [
|
|
|
33
33
|
'videoLevelList',
|
|
34
34
|
'videoLevel',
|
|
35
35
|
'recMonth',
|
|
36
|
-
'url'
|
|
36
|
+
'url',
|
|
37
|
+
// 播放区间(片段分享)。通过 props 下发而不是靠事件,避免主题异步渲染时错过初始化事件
|
|
38
|
+
'playbackRange'
|
|
37
39
|
];
|
|
38
40
|
/**
|
|
39
41
|
* 当移动端 picker 控件打开时需要关闭动画(定时器)
|
|
@@ -101,7 +103,8 @@ var THEME_PROPS = [
|
|
|
101
103
|
'ptz',
|
|
102
104
|
'timeLine',
|
|
103
105
|
'rec',
|
|
104
|
-
'date'
|
|
106
|
+
'date',
|
|
107
|
+
'segmentProgress'
|
|
105
108
|
];
|
|
106
109
|
/**
|
|
107
110
|
* 回放时间轴和日历
|
|
@@ -173,6 +176,7 @@ var EVENTS = {
|
|
|
173
176
|
currentVideoLevelAuto: 'currentVideoLevelAuto',
|
|
174
177
|
setAllDayRecTimes: 'setAllDayRecTimes',
|
|
175
178
|
getOSDTime: 'getOSDTime',
|
|
179
|
+
/** 播放区间播放结束(SDK 层 playbackRange 特性) */ playbackEnd: 'playbackEnd',
|
|
176
180
|
/**
|
|
177
181
|
* 控件相关
|
|
178
182
|
*/ control: {
|