@volcengine/veplayer 1.8.2-rc.1 → 1.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/index.d.ts CHANGED
@@ -2,97 +2,135 @@ import VodLogger from '@byted/xgplayer-app-logger/es/logger.js';
2
2
  import VeStrategy from '@volcengine/vestrategy';
3
3
  import { StrategyRecommendation, VeStrategyInitOptions } from '@volcengine/vestrategy';
4
4
  import { VeStrategyH265Config } from '@volcengine/vestrategy-h265';
5
- import { Property } from 'dom-helpers/esm/types';
6
5
  import EventEmitter from 'eventemitter3';
7
6
  import Player from 'xgplayer';
8
- import { BasePlugin, Events as XgEvents, I18N, IXGI18nText, Plugin } from 'xgplayer';
7
+ import { BasePlugin, I18N, IXGI18nText, Plugin } from 'xgplayer';
9
8
 
10
- declare enum POSITIONS {
9
+ /**
10
+ * @brief 插件按钮位置
11
+ */
12
+ export declare const enum POSITIONS {
13
+ /**
14
+ * @brief 播放器根节点
15
+ */
11
16
  ROOT = "root",
17
+ /**
18
+ * @brief 播放器根节点左侧
19
+ */
12
20
  ROOT_LEFT = "rootLeft",
21
+ /**
22
+ * @brief 播放器根节点右侧
23
+ */
13
24
  ROOT_RIGHT = "rootRight",
25
+ /**
26
+ * @brief 播放器根节点顶部
27
+ */
14
28
  ROOT_TOP = "rootTop",
29
+ /**
30
+ * @brief 播控栏左侧
31
+ */
15
32
  CONTROLS_LEFT = "controlsLeft",
33
+ /**
34
+ * @brief 播控栏左侧
35
+ */
36
+ CONTROLS_RIGTH = "controlsRight",
37
+ /**
38
+ * @brief 播控栏右侧
39
+ */
16
40
  CONTROLS_RIGHT = "controlsRight",
17
- CONTROLS_CENTER = "controlsCenter"
41
+ /**
42
+ * @brief 播控栏中间
43
+ */
44
+ CONTROLS_CENTER = "controlsCenter",
45
+ /** @hidden
46
+ * @brief 播控栏左侧
47
+ */
48
+ CONTROLS = "controls"
18
49
  }
19
50
  /**
20
- * @detail Options
21
- *
22
- *
23
- * @export
24
- * @interface ISdkErrorConfig
51
+ * @brief 发错错误时的UI表现配置
52
+ * @list Options
53
+ * @kind property
25
54
  */
26
55
  export interface ISdkErrorConfig {
27
- /**
28
- * 报错时是否显示提示图片
29
- * 默认:true
30
- *
31
- * @type {boolean}
32
- * @memberof ISdkErrorConfig
56
+ /** {zh}
57
+ * @brief 报错时是否显示提示图片
58
+ * @default true
33
59
  */
34
60
  errorImg?: boolean;
35
- /**
36
- * 报错时是否展示
37
- * 默认:true
38
- *
39
- * @type {boolean}
40
- * @memberof ISdkErrorConfig
61
+ /** {zh}
62
+ * @brief 报错时是否展示
63
+ * @default true
41
64
  */
42
65
  errorTips?: boolean;
43
- /**
44
- * 报错时是否展示“刷新”按钮
45
- * 默认:true
46
- *
47
- * @type {boolean}
48
- * @memberof ISdkErrorConfig
66
+ /** {zh}
67
+ * @brief 报错时是否展示“刷新”按钮
68
+ * @default ture
49
69
  */
50
70
  isNeedRefreshButton?: boolean;
51
- /**
52
- * 报错后是否进行降级,true则降级到playlist中相应 backUrlList字段(type为 rtm 不能设置true)
53
- * 默认:false
54
- *
55
- * @type {boolean}
56
- * @memberof ISdkErrorConfig
71
+ /** {zh}
72
+ * @brief 报错后是否进行降级,true则降级到playlist中相应 backUrlList字段(type为 rtm 不能设置true)
73
+ * @default false
74
+ * @hidden
57
75
  */
58
76
  isNeedDemoteBack?: boolean;
59
- /**
60
- *
61
- * 报错后重试次数
62
- * 默认: 1
63
- *
64
- * @type {number}
65
- * @memberof ISdkErrorConfig
77
+ /** {zh}
78
+ * @brief 报错后重试次数
79
+ * @default 1
66
80
  */
67
81
  retryLoopNum?: number;
68
- /**
69
- *
70
- * 报错后提示文案
71
- * 默认:播放发生错误,点击刷新试试吧
72
- *
73
- * @type {(HTMLElement | string)}
74
- * @memberof ISdkErrorConfig
82
+ /** {zh}
83
+ * @brief 报错后提示文案
84
+ * @default 播放发生错误,点击刷新试试吧
75
85
  */
76
- errorTipsText?: HTMLElement | string;
77
- /**
78
- * 播放器中所处的位置
86
+ /** {en}
87
+ * @brief Prompt copy after error
88
+ * @default An error occurred while playing, click refresh to try
89
+ */
90
+ errorTipsText?: TipsTextConfig;
91
+ /** {zh}
79
92
  * @hidden
80
- * @type {string}
81
- * @memberof ISdkErrorConfig
93
+ * @brief 播放器中所处的位置
82
94
  */
83
95
  position?: POSITIONS;
84
96
  }
85
97
  /**
86
- * @detail Options
87
- *
88
- *
89
- * @export
98
+ * @list Options
99
+ * @brief 错误文案配置
100
+ * @kind property
101
+ */
102
+ export interface TipsTextConfig {
103
+ /**
104
+ * @brief 中文错误文案
105
+ * @default 播放发生错误,点击刷新试试吧
106
+ */
107
+ zh?: HTMLElement | string;
108
+ /**
109
+ * @brief 英文错误文案
110
+ * @default An error occurred while playing, click refresh to try
111
+ */
112
+ en?: HTMLElement | string;
113
+ /**
114
+ * @brief 日文错误文案
115
+ * @default 再生中にエラーが発生しました。[更新]をクリックして試してください
116
+ */
117
+ jp?: HTMLElement | string;
118
+ /**
119
+ * @brief 香港繁体中文错误文案。
120
+ * @default 播放發生錯誤,點擊刷新試試吧
121
+ */
122
+ "zh-hk"?: HTMLElement | string;
123
+ }
124
+ /**
125
+ * @hidden
126
+ * @brief rtm配置
127
+ * @list Options
90
128
  * @interface IRtmConfig
91
129
  */
92
130
  export interface IRtmConfig {
93
131
  /**
94
132
  * sdp接口请求超时等待时间, 单位 ms
95
- * 默认值: 5000
133
+ * @default 5000
96
134
  *
97
135
  * @type {number}
98
136
  * @memberof IRtmConfig
@@ -100,7 +138,7 @@ export interface IRtmConfig {
100
138
  loadTimeout?: number;
101
139
  /**
102
140
  * sdp接口请求失败时重试间隔时间, 单位 ms
103
- * 默认值:1000
141
+ * @default 1000
104
142
  *
105
143
  * @type {number}
106
144
  * @memberof IRtmConfig
@@ -108,7 +146,7 @@ export interface IRtmConfig {
108
146
  retryDelay?: number;
109
147
  /**
110
148
  * sdp接口请求失败时的重试次数
111
- * 默认值:0
149
+ * @default 0
112
150
  *
113
151
  * @type {number}
114
152
  * @memberof IRtmConfig
@@ -116,7 +154,7 @@ export interface IRtmConfig {
116
154
  retryCount?: number;
117
155
  /**
118
156
  * rtc播放video不会触发waiting,通过timeupdate事件模拟,两次timeupdate事件触发间隔时间大于此值时模拟waiting事件触发 , 单位 ms
119
- * 默认值:300
157
+ * @default 300
120
158
  *
121
159
  * @type {number}
122
160
  * @memberof IRtmConfig
@@ -124,7 +162,7 @@ export interface IRtmConfig {
124
162
  stallInterval?: number;
125
163
  /**
126
164
  * rtc起播建联失败时降级到flv或hls播放, 指定时开启降级,不指定建联失败对外抛error
127
- * 默认值:''
165
+ * @default ''
128
166
  *
129
167
  * @type {string}
130
168
  * @memberof IRtmConfig
@@ -132,7 +170,7 @@ export interface IRtmConfig {
132
170
  backupURL?: string;
133
171
  /**
134
172
  * 降级到flv或者hls时需要的播放插件, 配合 backupURL使用
135
- * 默认值:null
173
+ * @default null
136
174
  *
137
175
  * @type {('hls' | 'flv')}
138
176
  * @memberof IRtmConfig
@@ -140,87 +178,58 @@ export interface IRtmConfig {
140
178
  backupStreamType: "hls" | "flv";
141
179
  }
142
180
  /**
143
- * @detail Options
144
181
  * @brief 弹幕相关设置
145
- *
146
- * @export
147
- * @interface InitConfig
182
+ * @list Options
183
+ * @kind property
148
184
  */
149
- export interface InitConfig {
185
+ export interface IDanmuConfig {
150
186
  /**
151
- * 透明度, 枚举值[0, 33, 66, 99], 实际对应0, 0.33, 0.66, 1
152
- * 默认:99
153
- *
154
- * @type {number}
155
- * @memberof InitConfig
187
+ * @brief 透明度, 枚举值[0, 33, 66, 99], 实际对应0, 0.33, 0.66, 1
188
+ * @default 99
156
189
  */
157
190
  opacity?: number;
158
191
  /**
159
- * 枚举值[0, 33, 66, 99] 实际对应1/4, 1/2, 3/4, 1
160
- * 默认:99
161
- *
162
- * @type {number}
163
- * @memberof InitConfig
192
+ * @brief 枚举值[0, 33, 66, 99] 实际对应1/4, 1/2, 3/4, 1
193
+ * @default 99
164
194
  */
165
195
  area?: number;
166
196
  /**
167
- * 速度, 枚举值[0, 20, 40, 60, 80, 100], 实际对应1/4, 1/2,1,5/4,3/2,2
168
- * 默认:40
169
- *
170
- * @type {number}
171
- * @memberof InitConfig
197
+ * @brief 速度, 枚举值[0, 20, 40, 60, 80, 100], 实际对应1/4, 1/2,1,5/4,3/2,2
198
+ * @default 40
172
199
  */
173
200
  speed?: number;
174
201
  /**
175
- * 字体大小, 枚举值[0, 50, 100],实际对应14px 16px 20px
176
- * 默认:50
177
- *
178
- * @type {number}
179
- * @memberof InitConfig
202
+ * @brief 字体大小, 枚举值[0, 50, 100],实际对应14px 16px 20px
203
+ * @default 50
180
204
  */
181
205
  fontSize?: number;
182
206
  /**
183
- * 是否打开面板
184
- * 默认:false
185
- *
186
- * @type {boolean}
187
- * @memberof InitConfig
207
+ * @brief 是否打开面板
208
+ * @default false
188
209
  */
189
210
  active?: boolean;
190
211
  /**
191
- * 是否展示弹幕设置面板
192
- * 默认: true
193
- *
194
- * @type {boolean}
195
- * @memberof InitConfig
212
+ * @brief 是否展示弹幕设置面板
213
+ * @default true
196
214
  */
197
215
  usePanel?: boolean;
198
216
  /**
199
- * 弹幕列表
200
- *
201
- * @type {DanmuItem[]}
202
- * @memberof InitConfig
217
+ * @brief 弹幕列表
218
+ * @default -
203
219
  */
204
220
  danmuItems?: DanmuItem[];
205
221
  /**
206
222
  * @hidden
207
- *
208
223
  * @type {ExternalItem[]}
209
- * @memberof InitConfig
224
+ * @memberof IDanmuConfig
210
225
  */
211
226
  external?: ExternalItem[];
212
227
  /**
213
228
  * @hidden
214
- *
215
- * @type {IMaskConfig}
216
- * @memberof InitConfig
217
229
  */
218
230
  maskConfig?: IMaskConfig;
219
231
  /**
220
232
  * @hidden
221
- *
222
- * @type {boolean}
223
- * @memberof InitConfig
224
233
  */
225
234
  maskActive?: boolean;
226
235
  }
@@ -229,15 +238,19 @@ export interface IMaskConfig {
229
238
  maskOffset?: number;
230
239
  interval?: number;
231
240
  }
241
+ /**
242
+ * @hidden
243
+ * @brief 语言类型
244
+ */
232
245
  export interface Lang {
233
246
  zh: string;
234
247
  en: string;
235
248
  [props: string]: string;
236
249
  }
237
250
  /**
238
- * @detail Options
239
- *
240
- *
251
+ * @brief 弹幕项配置
252
+ * @list Options
253
+ * @kind property
241
254
  * @export
242
255
  * @interface DanmuItem
243
256
  */
@@ -258,9 +271,7 @@ export interface DanmuItem {
258
271
  txt: string;
259
272
  /**
260
273
  * 弹幕出现时间, 单位为ms
261
- *
262
- * @type {number}
263
- * @memberof DanmuItem
274
+ * @default 0
264
275
  */
265
276
  start?: number;
266
277
  /**
@@ -272,23 +283,26 @@ export interface DanmuItem {
272
283
  prior?: boolean;
273
284
  /**
274
285
  * 弹幕持续显示时间, 单位为ms
286
+ * @default 5000
275
287
  *
276
288
  * @type {number}
277
289
  * @memberof DanmuItem
278
290
  */
279
291
  duration?: number;
280
292
  /**
281
- * 弹幕样式
282
- * style : {
293
+ * @brief 弹幕样式
294
+ * @example
295
+ * ``` javascript
296
+ * {
283
297
  * color: '#ff9500',
284
298
  * fontSize: '20px',
285
299
  * padding: '2px 11px'
286
300
  * }
287
- *
301
+ *```
288
302
  * @type {Partial<Record<Property, string>>}
289
303
  * @memberof DanmuItem
290
304
  */
291
- style?: Partial<Record<Property, string>>;
305
+ style?: CSSStyleDeclaration;
292
306
  }
293
307
  export interface ExternalItem {
294
308
  key: string;
@@ -297,10 +311,9 @@ export interface ExternalItem {
297
311
  lang?: Lang;
298
312
  }
299
313
  /**
300
- * @detail Options
301
- *
302
- * @export
303
- * @interface ISubtitleConfig
314
+ * @brief 外挂字幕配置
315
+ * @list Options
316
+ * @kind property
304
317
  */
305
318
  export interface ISubtitleConfig {
306
319
  /**
@@ -309,192 +322,164 @@ export interface ISubtitleConfig {
309
322
  */
310
323
  [propName: string]: any;
311
324
  /**
312
- * 图标位置
313
- * 默认值:controlsRight
314
- * @type {string}
315
- * @memberof ISubtitleConfig
325
+ * @brief 图标位置
326
+ * @default controlsRight
316
327
  */
317
328
  position?: string;
318
329
  /**
319
- * 图标排列权重
320
- * 默认值:6
321
- * @type {number}
322
- * @memberof ISubtitleConfig
330
+ * @brief 图标排列权重
331
+ * @default 6
323
332
  */
324
333
  index?: number;
325
334
  /**
326
- * 字幕列表
327
- * 默认值:无
328
- * @type {Array<SubTitleItem>}
329
- * @memberof ISubtitleConfig
335
+ * @brief 字幕列表
336
+ * @default -
330
337
  */
331
338
  list?: Array<ISubTitleItem>;
332
339
  /**
333
- * 是否默认打开
334
- * 默认值:true
335
- * @type {boolean}
336
- * @memberof ISubtitleConfig
340
+ * @brief 是否默认打开
341
+ * @default true
337
342
  */
338
343
  isDefaultOpen?: boolean;
339
344
  /**
340
- * 是否显示图标
341
- * 默认值:true
342
- * @type {boolean}
343
- * @memberof ISubtitleConfig
345
+ * @brief 是否显示图标
346
+ * @default true
344
347
  */
345
348
  isShowIcon?: boolean;
346
349
  /**
347
- * 字幕渲染模式,外挂字幕或原生字幕
348
- * 默认值:external
349
- * @type {string}
350
- * @memberof ISubtitleConfig
350
+ * @brief 字幕渲染模式,外挂字幕或原生字幕
351
+ * @default external
351
352
  */
352
353
  mode?: "external" | "native";
353
354
  /**
354
- * 字幕更新模式,默认vod
355
- * 默认值:vod
356
- * @type {string}
357
- * @memberof ISubtitleConfig
355
+ * @brief 字幕更新模式,默认vod
356
+ * @default vod
358
357
  */
359
358
  updateMode?: "vod" | "live";
360
359
  /**
361
- * 字幕样式
362
- * 默认值:无
363
- * @type {ISubtitleStyle}
364
- * @memberof ISubtitleConfig
360
+ * @brief 字幕样式
361
+ * @default -
365
362
  */
366
363
  style?: ISubtitleStyle;
367
364
  }
368
365
  /**
369
- * @detail Options
370
- *
371
- * @export
372
- * @interface ISubtitleStyle
366
+ * @list Options
367
+ * @brief 字幕样式配置
368
+ * @kind property
373
369
  */
374
370
  export interface ISubtitleStyle {
375
371
  /**
376
372
  * 是否跟随控制栏调整位置
377
- * 默认值:true
373
+ * @default true
378
374
  * @type {boolean | null}
379
375
  * @memberof ISubtitleStyle
380
376
  */
381
377
  follow: boolean | null;
382
378
  /**
383
379
  * 字体显示模式,默认是描边
384
- * 默认值:'stroke'
380
+ * @default 'stroke'
385
381
  * @type {'stroke' | 'bg'}
386
382
  * @memberof ISubtitleStyle
387
383
  */
388
384
  mode?: "stroke" | "bg";
389
385
  /**
390
386
  * 跟随底部控制栏的高度
391
- * 默认值:50
387
+ * @default 50
392
388
  * @type {number}
393
389
  * @memberof ISubtitleStyle
394
390
  */
395
391
  followBottom?: number;
396
392
  /**
397
393
  * 是否跟随视频自动调整字号
398
- * 默认值:true
394
+ * @default true
399
395
  * @type {boolean}
400
396
  * @memberof ISubtitleStyle
401
397
  */
402
398
  fitVideo?: boolean;
403
399
  /**
404
400
  * 字幕距离画面底部百分比
405
- * 默认值:4
401
+ * @default 4
406
402
  * @type {number}
407
403
  * @memberof ISubtitleStyle
408
404
  */
409
405
  offsetBottom?: number;
410
406
  /**
411
407
  * 横屏视频适配基准字号
412
- * 默认值:49
408
+ * @default 49
413
409
  * @type {number}
414
410
  * @memberof ISubtitleStyle
415
411
  */
416
412
  baseSizeX?: number;
417
413
  /**
418
414
  * 竖屏视频适配基准字号
419
- * 默认值:28
415
+ * @default 28
420
416
  * @type {number}
421
417
  * @memberof ISubtitleStyle
422
418
  */
423
419
  baseSizeY?: number;
424
420
  /**
425
421
  * pc端最小字号
426
- * 默认值:16
422
+ * @default 16
427
423
  * @type {number}
428
424
  * @memberof ISubtitleStyle
429
425
  */
430
426
  minSize?: number;
431
427
  /**
432
428
  * 移动端最小字号
433
- * 默认值:13
429
+ * @default 13
434
430
  * @type {number}
435
431
  * @memberof ISubtitleStyle
436
432
  */
437
433
  minMobileSize?: number;
438
434
  /**
439
435
  * 最大显示行数
440
- * 默认值:'double'
436
+ * @default double
441
437
  * @type {'double' | 'single' | 'three'}
442
438
  * @memberof ISubtitleStyle
443
439
  */
444
440
  line?: "double" | "single" | "three";
445
441
  /**
446
442
  * 字体颜色, 16位颜色值或rgb值
447
- * 默认值:'#fff'
443
+ * @default #fff
448
444
  * @type {string}
449
445
  * @memberof ISubtitleStyle
450
446
  */
451
447
  fontColor?: string;
452
448
  }
453
449
  /**
454
- * @detail Options
455
- *
456
- * @export
457
- * @interface ISubTitleItem
450
+ * @list Options
451
+ * @brief 字幕项配置
452
+ * @kind property
458
453
  */
459
454
  export interface ISubTitleItem {
460
455
  /**
461
- * 字幕语言
462
- * 默认值:无
463
- * @type {string | number}
464
- * @memberof ISubTitleItem
456
+ * @brief 字幕语言
457
+ * @default -
465
458
  */
466
459
  language?: string | number;
467
460
  /**
468
- * 字幕id
469
- * 默认值:无
470
- * @type {string | number}
471
- * @memberof ISubTitleItem
461
+ * @brief 字幕id
462
+ * @default -
472
463
  */
473
464
  id?: number | string;
474
465
  /**
475
- * 是否是默认选择的字幕
476
- * 默认值:false
477
- * @type {boolean}
478
- * @memberof ISubTitleItem
466
+ * @brief 是否是默认选择的字幕
467
+ * @default false
479
468
  */
480
469
  isDefault?: boolean;
481
470
  /**
482
- * 字幕名称
483
- * 默认值:无
484
- * @type {any}
485
- * @memberof ISubTitleItem
471
+ * @brief 字幕名称
472
+ * @default -
486
473
  */
487
- text?: any;
474
+ text?: string;
488
475
  /**
489
- * 外挂字幕地址
490
- * 默认值:false
491
- * @type {string}
492
- * @memberof ISubTitleItem
476
+ * @brief 外挂字幕地址
477
+ * @default -
493
478
  */
494
479
  url?: string;
495
480
  /**
496
481
  * stringContent
497
- * 默认值:无
482
+ * @default 无
498
483
  * @hidden
499
484
  * @type {string}
500
485
  * @memberof ISubTitleItem
@@ -502,15 +487,16 @@ export interface ISubTitleItem {
502
487
  stringContent?: string;
503
488
  /**
504
489
  * 字幕内容列表,非url形式时使用
505
- * 默认值:无
490
+ * @default 无
506
491
  * @type {Array<Object>}
507
492
  * @memberof ISubTitleItem
508
493
  */
509
494
  list?: IListItem[];
510
495
  }
511
496
  /**
512
- * @detail Options
513
- *
497
+ * @brief 字幕内容项配置
498
+ * @list Options
499
+ * @kind property
514
500
  * @export
515
501
  * @interface IListItem
516
502
  */
@@ -531,21 +517,20 @@ export interface IListItem {
531
517
  */
532
518
  list: Array<ITextItem>;
533
519
  /**
534
- * 默认值:无
520
+ * @default 无
535
521
  * @hidden
536
522
  * @type {any}
537
523
  */
538
524
  [propName: string]: any;
539
525
  }
540
526
  /**
541
- * @detail Options
542
- *
543
- * @export
544
- * @interface ITextItem
527
+ * @breif 字幕文案配置
528
+ * @list Options
529
+ * @kind property
545
530
  */
546
531
  export interface ITextItem {
547
532
  /**
548
- * 默认值:无
533
+ * @default 无
549
534
  * @hidden
550
535
  * @type {any}
551
536
  */
@@ -572,8 +557,9 @@ export interface ITextItem {
572
557
  index?: number;
573
558
  }
574
559
  /**
575
- * @detail Options
576
- *
560
+ * @brief 清晰度自动降级配置
561
+ * @list Options
562
+ * @hidden
577
563
  *
578
564
  * @export
579
565
  * @interface IDefinitionDemotePlugin
@@ -622,38 +608,30 @@ export interface IDefinitionDemotePlugin {
622
608
  demotePriority?: string[];
623
609
  }
624
610
  /**
625
- * @detail Options
626
- * @brief 更多options
627
- * @id 2
628
- *
629
-
630
- /**
631
- * dash播放配置想
632
- *
633
- * @detail Options
634
- * @export
635
- * @interface IDashPluginConfig
611
+ * @brief DASH 播放配置项
612
+ * @list Options
613
+ * @kind property
636
614
  */
637
615
  export interface IDashPluginConfig {
638
616
  /**
639
- * 视频vid
640
- * 默认:无
641
- * 播放加密视频时必选
617
+ * @brief 视频vid
618
+ * @default -
619
+ * @notice 播放加密视频时必选
642
620
  */
643
621
  vid?: string;
644
622
  /**
645
- * 播放类型
646
- * 默认:`TOP`
647
- * 非必选
623
+ * @hidden
624
+ * @brief 播放类型
625
+ * @default TOP
648
626
  */
649
627
  playInfoType: "TOP";
650
628
  /**
651
- * 清晰度映射文案
652
- * 默认:无
653
- * 非必选
629
+ * @brief 清晰度映射文案
630
+ * @default -
654
631
  * @example
655
632
  * ``` javascript
656
- * { 360p: "流畅 360p",
633
+ * {
634
+ * 360p: "流畅 360p",
657
635
  * 480p: "清晰 480p",
658
636
  * 720p: "高清 720p",
659
637
  * 1080p: "超高清 1080p"
@@ -662,26 +640,19 @@ export interface IDashPluginConfig {
662
640
  */
663
641
  definitionText: Record<string, string>;
664
642
  /**
665
- * 默认清晰度
666
- * 默认:列表第一个
667
- * 非必选
668
- * @example
669
- * ``` javascript
670
- * { 360p: "流畅 360p",
671
- * 480p: "清晰 480p",
672
- * 720p: "高清 720p",
673
- * 1080p: "超高清 1080p"
674
- * }
675
- * ```
643
+ * @brief 默认清晰度
644
+ * @default 列表第一个
676
645
  */
677
646
  defaultDefinition?: string;
678
647
  /**
648
+ * @hidden
679
649
  * 获取证书地址
680
650
  * 默认:`//i.snssdk.com/video/drm/v1/play_licenses`
681
651
  * 播放加密视频时必选
682
652
  */
683
653
  getLicenseUrl?: string;
684
654
  /**
655
+ * @hidden
685
656
  * dash播放信息,由`Service.url`服务接口获取
686
657
  * 默认:无
687
658
  * 必选
@@ -690,17 +661,16 @@ export interface IDashPluginConfig {
690
661
  Data: any;
691
662
  };
692
663
  /**
693
- * 兜底的mp4播放列表,由`Service.url`服务接口获取
694
- * 默认:无
695
- * 非必选
664
+ * @brief 兜底的mp4播放列表,由`Service.url`服务接口获取
665
+ * @default -
666
+ * @hidden
696
667
  */
697
668
  mp4Opts: {
698
669
  mp4List: mp4OptsItem[];
699
670
  };
700
671
  /**
701
672
  * 预加载时间,单位ms
702
- * 默认:undefined
703
- * 非必选
673
+ * @default 50
704
674
  */
705
675
  preloadTime?: number;
706
676
  /**
@@ -728,11 +698,9 @@ export interface IDashPluginConfig {
728
698
  url_range_domains?: string[];
729
699
  }
730
700
  /**
731
- * dash播放的mp4兜底播放列表配置
732
- *
733
- * @detail Options
734
- * @export
735
- * @interface mp4OptsItem
701
+ * @brief dash播放的mp4兜底播放列表配置
702
+ * @list Options
703
+ * @hidden
736
704
  */
737
705
  export interface mp4OptsItem {
738
706
  /**
@@ -749,217 +717,207 @@ export interface mp4OptsItem {
749
717
  url: string;
750
718
  }
751
719
  /**
752
- * DASH播放配置
753
- *
754
- * @detail Options
755
- * @export
756
- * @interface IDashPluginConfig
720
+ * @brief HLS加密播放配置
721
+ * @list Options
722
+ * @kind property
757
723
  */
758
724
  export interface IEncryptHlsPluginConfig {
759
- /**
760
- * 播放地址请求域名
761
- * 默认:无
762
- * 必选
725
+ /** {zh}
726
+ * @brief 获取播放地址的请求域名。
727
+ * @default https://vod.volcengineapi.com
763
728
  */
764
- playDomain: string;
765
- /**
766
- * 请求类型,固定值 'TOP'
767
- * 默认: 无
729
+ /** {en}
730
+ * @brief Get the requested domain name of the playback address
731
+ * @default https://vod.byteplusapi.com
768
732
  */
769
- getKeyType: string;
733
+ playDomain?: string;
770
734
  /**
771
- * 密钥请求域名
772
- * 默认:无
773
- * 必选
735
+ * @hidden
736
+ * @brief 请求类型,固定值 'TOP'
737
+ * @default TOP
774
738
  */
775
- keyDomain: string;
739
+ getKeyType?: string;
776
740
  /**
777
- * 播放地址获取token,由服务端生成下发,详见{@link https://www.volcengine.com/docs/4/67350#%E4%B8%B4%E6%97%B6%E5%AE%89%E5%85%A8%E5%87%AD%E8%AF%81%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E 播放临时安全凭证(PlayAuthToken)}
778
- * 默认:无
779
- * 必选
741
+ * @hidden
742
+ * @brief 密钥请求域名
743
+ * @default https://vod.volcengineapi.com
780
744
  */
781
- playAuthToken: string;
745
+ keyDomain?: string;
782
746
  /**
783
- * 密钥获取token,由服务端生成下发,详见{@link https://www.volcengine.com/docs/4/65659#%E7%AD%BE%E5%8F%91-hls-%E6%A0%87%E5%87%86%E5%8A%A0%E5%AF%86-authtoken%EF%BC%88sha1hlsdrmauthtoken%EF%BC%89 签发 Hls 标准加密AuthToken}
784
- * 默认:无
785
- * 必选
747
+ * @brief 播放地址获取token,由服务端生成下发,详见{@link https://www.volcengine.com/docs/4/67350#%E4%B8%B4%E6%97%B6%E5%AE%89%E5%85%A8%E5%87%AD%E8%AF%81%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E 播放临时安全凭证(PlayAuthToken)}
748
+ * @default -
786
749
  */
787
- keyToken: string;
750
+ playAuthToken?: string;
788
751
  /**
789
- * hls加密播放地址
790
- * 默认:无
752
+ * @brief 密钥获取token,由服务端生成下发,详见{@link https://www.volcengine.com/docs/4/65659#%E7%AD%BE%E5%8F%91-hls-%E6%A0%87%E5%87%86%E5%8A%A0%E5%AF%86-authtoken%EF%BC%88sha1hlsdrmauthtoken%EF%BC%89 签发 Hls 标准加密AuthToken}
753
+ * @default -
791
754
  */
792
- url?: string;
755
+ keyToken: string;
793
756
  }
794
757
  /**
795
- * 质量日志配置
796
- *
797
- * @detail Options
798
- * @export
799
- * @interface IVodLogOptsConfig
758
+ * @brief 质量日志配置
759
+ * @list Options
760
+ * @kind property
800
761
  */
801
762
  export interface IVodLogOptsConfig {
802
763
  /**
803
- * 表示业务来源,使用业务自己的appid即可
804
- * 默认:无
805
- * 必选
764
+ * @brief 视频点播应用 ID。您可在视频{@link https://console.volcengine.com/vod/region:vod+cn-north-1/sdk/app/ 点播控制台 > 点播SDK > 应用管理}页面获取应用 ID(App ID)。
765
+ * @default -
806
766
  */
807
767
  line_app_id: number;
808
768
  /**
809
- * 用于识别单一用户的id
810
- * 默认:无
811
- * 必选
769
+ * @brief 用于识别单一用户的 ID,可在{@link https://www.volcengine.com/docs/4/75736#qoe-%E6%8C%87%E6%A0%87%E8%AF%B4%E6%98%8E QoE指标}中用于用户维度的筛选,也可以用于{@link https://www.volcengine.com/docs/4/106093 单点追查} 查找单用户的播放日志
770
+ * 用户 ID 对应于单点追查功能的查询条件中的设备 ID 维度。如不设置用户 ID,VePlayer 将根据用户浏览器随机生成一个值,该值会在浏览器端缓存。
771
+ * @notice 强烈建议您使用与业务相关的用户 ID,以便在发生播放错误时通过{@link https://console.volcengine.com/vod/region:vod+cn-north-1/quality_control/SingleTracing/?Tab=play 点播控制台 > 质量平台 > 单点追查}功能排查故障。
772
+ * @default -
812
773
  */
813
774
  line_user_id: string | number;
814
775
  /**
815
- * 视频类型
816
- * 默认:无
817
- * 必选
776
+ * @hidden
777
+ * @brief 视频类型
778
+ * @default MP4
818
779
  */
819
780
  vtype?: "MP4" | "HLS" | "DASH" | "FLV";
820
781
  /**
821
- * 自定义标签,对应控制台"业务维类型"维度
822
- * 默认:`default`
823
- * 必选
782
+ * @brief 业务标签。对应于质量平台上的业务类型维度,其作用是区分业务中的不同场景,以便进行多维度分析。举例来说,假设您的应用中包含短视频和长视频两个场景,则可分别将 `tag` 设为 `short` 和 `long`。这样一来,您就能够在{@link https://www.volcengine.com/docs/4/120175 质量平台}上通过业务标签维度查询或过滤不同场景的数据。
783
+ * @notice 如需自定义配置 tag 值在点播控制台上的展示文案,请联系{@link https://www.volcengine.com/docs/4/108992#%E5%94%AE%E5%90%8E%E6%94%AF%E6%8C%81 技术支持}
784
+ * @default 普通视频
824
785
  */
825
786
  tag?: string;
826
787
  /**
827
- * 自定义子标签,对应控制台"自定义标签"维度
828
- * 默认:`default`
829
- * 必选
788
+ * @brief 自定义子标签。对应于质量平台上的自定义标签维度,与 `tag` 配合使用,可用于区分同一业务类型下更为细分的音视频类型,比如加密视频、非加密视频、音频等。
789
+ * @default -
830
790
  */
831
791
  subtag?: string;
832
792
  /**
833
- * 视频解码器类型名称
834
- * 默认:`h264`
835
- * 必选
793
+ * @brief 视频编码类型,取值如下
794
+ * - `h264`:H.264
795
+ * - `h265`:H.265
796
+ * @default unknown
836
797
  */
837
798
  codec_type?: "h264" | "h265";
838
799
  /**
839
- * 是否加密,0:非drm视频,1:drm视频
840
- * 默认:`0`
841
- * 可选
800
+ * @brief 是否加密,0:非drm视频,1:drm视频
801
+ * @hidden
802
+ * @default 0
842
803
  */
843
804
  drm_type?: 0 | 1;
844
805
  /**
845
- * 播放内核版本号
846
- * 默认:无
847
- * 可选
806
+ * @hidden
807
+ * @brief 播放内核版本号
848
808
  */
849
809
  playerCoreVersion?: string;
850
810
  /**
851
- * 播放器版本号
852
- * 默认:无
853
- * 可选
811
+ * @hidden
812
+ * @brief 播放器版本号
854
813
  */
855
814
  playerVersion?: string;
856
815
  /**
857
- * DASH播放的封装类型
858
- * 默认:无
859
- * 可选
816
+ * @hidden
817
+ * @brief DASH播放的封装类型
860
818
  */
861
819
  dynamic_type?: "segment_base" | "segment_template";
862
820
  /**
863
- * 是否使用bash,0:不使用,1:使用
864
- * 默认:`0`
865
- * 可选
821
+ * @hidden
822
+ * @brief 是否使用bash,0:不使用,1:使用
823
+ * @default 0
866
824
  */
867
825
  enable_bash?: 0 | 1;
868
826
  /**
869
- * 发送的埋点日志是本地缓存的时候回调
870
- * 默认:无
871
- * 可选
827
+ * @hidden
828
+ * @brief 发送的埋点日志是本地缓存的时候回调
829
+ * @default -
872
830
  */
873
831
  sendLocalCallback?: (event: any, data: any) => void;
874
832
  /**
875
- * 是否禁用localStorage暂时缓存onPlay逻辑
876
- * 默认:`false`
877
- * 可选
833
+ * @hidden
834
+ * @brief 是否禁用localStorage暂时缓存onPlay逻辑
835
+ * @default false
878
836
  */
879
837
  disableLocalCache?: boolean;
880
838
  /**
881
- * 数据上报渠道,可选值:cn(国内)、va(美东) 、sg(新加坡)
882
- * 默认:`cn`
883
- * 可选
839
+ * @hidden
840
+ * @brief 数据上报渠道,可选值:cn(国内)、va(美东) 、sg(新加坡)
841
+ * @default cn
884
842
  */
885
843
  channel?: "cn" | "va" | "sg";
886
844
  /**
887
- * 是否关闭清晰度切换埋点
888
- * 默认:`false`
889
- * 可选
845
+ * @hidden
846
+ * @brief 是否关闭清晰度切换埋点
847
+ * @default false
890
848
  */
891
849
  closeResolutionLog?: boolean;
892
850
  /**
893
- * 关闭seek相关埋点
894
- * 默认:`false`
895
- * 可选
851
+ * @hidden
852
+ * @brief 关闭seek相关埋点
853
+ * @default false
896
854
  */
897
855
  closeSeekLog?: boolean;
898
856
  /**
899
- * 队列超过多少条日志的时候发送
900
- * 默认:`5`
901
- * 可选
857
+ * @hidden
858
+ * @brief 队列超过多少条日志的时候发送
859
+ * @default 5
902
860
  */
903
861
  maxQueueCount?: number;
904
862
  }
905
863
  /**
906
- * mp4加密日志配置项
907
- *
908
- * @detail Options
909
- * @export
910
- * @interface IMp4EncryptPlayerConfig
864
+ * @brief mp4加密日志配置项
865
+ * @list Options
866
+ * @hidden
911
867
  */
912
868
  export interface IMp4EncryptPlayerConfig {
913
869
  /**
914
- * 是否加密
915
- * 默认:`false`
916
- * 可选
870
+ * @hidden
871
+ * @brief 是否加密
872
+ * @default false
917
873
  */
918
874
  isEncrypt?: boolean;
919
875
  /**
920
- * 视频vid
921
- * 默认:无
922
- * 可选
876
+ * @hidden
877
+ * @brief 视频vid
878
+ * @default -
923
879
  */
924
880
  vid?: string;
925
881
  /**
926
- * 视频密钥 id
927
- * 默认:无
928
- * 可选
882
+ * @hidden
883
+ * @brief 视频密钥 id
884
+ * @default -
929
885
  */
930
886
  kid?: string;
931
887
  /**
932
- * 获取密钥凭证地址
933
- * 默认:无
934
- * 可选
888
+ * @hidden
889
+ * @brief 获取密钥凭证地址
890
+ * @default -
935
891
  */
936
892
  getLicenseUrl?: string;
937
893
  /**
938
- * 是否使用EME
939
- * 默认:`false`
940
- * 可选
894
+ * @hidden
895
+ * @brief 是否使用EME
896
+ * @default false
941
897
  */
942
898
  useEME?: boolean;
943
899
  /**
944
- * 视频密钥值
945
- * 默认:无
946
- * 可选
900
+ * @hidden
901
+ * @brief 视频密钥值
902
+ * @default -
947
903
  */
948
904
  keyValue?: string;
949
905
  /**
950
- * 加密后的视频密钥值
951
- * 默认:无
952
- * 可选
906
+ * @hidden
907
+ * @brief 加密后的视频密钥值
908
+ * @default -
953
909
  */
954
910
  secretKey?: string;
955
911
  /**
956
- * 是否携带cookie
912
+ * @hidden
913
+ * @brief 是否携带cookie
914
+ * @default false
957
915
  */
958
916
  withCredentials?: boolean;
959
917
  /**
960
- * drm内容
961
- * 默认:无
962
- * 可选
918
+ * @hidden
919
+ * @brief drm内容
920
+ * @default -
963
921
  */
964
922
  drm?: {
965
923
  clearKeys: {
@@ -967,6 +925,9 @@ export interface IMp4EncryptPlayerConfig {
967
925
  };
968
926
  };
969
927
  }
928
+ /**
929
+ * @hidden
930
+ */
970
931
  export declare type IDefinition = {
971
932
  [propName: string]: any;
972
933
  url: any;
@@ -980,6 +941,9 @@ export declare type IDefinition = {
980
941
  [propName: string]: any;
981
942
  };
982
943
  };
944
+ /**
945
+ * @hidden
946
+ */
983
947
  export declare type IPlayerOptions = {
984
948
  [propName: string]: any;
985
949
  id?: string;
@@ -1093,11 +1057,35 @@ export declare type IPlayerOptions = {
1093
1057
  volumeColor?: string;
1094
1058
  };
1095
1059
  };
1060
+ /**
1061
+ * @brief 自动播放配置
1062
+ * @list Options
1063
+ * @kind property
1064
+ */
1096
1065
  export interface IAutoplayPluginConfig {
1066
+ /**
1067
+ * @hidden
1068
+ */
1097
1069
  position?: string;
1070
+ /**
1071
+ * @brief 有声音自动播放失败时是否降级成静音自动播放
1072
+ * @default false
1073
+ */
1098
1074
  enableDegradeMuteAutoplay?: boolean;
1075
+ /**
1076
+ * @brief 启用微信jsBridge方式的自动播放
1077
+ * @default false
1078
+ */
1099
1079
  enableWxJsBridgeAutoplay?: boolean;
1080
+ /**
1081
+ * @brief 用户触发自动播放的目标dom
1082
+ * @default window.document.body
1083
+ */
1100
1084
  userActionDom?: Node;
1085
+ /**
1086
+ * @brief 开启任意点击/触摸的用户行为触发自动播放
1087
+ * @default false
1088
+ */
1101
1089
  enableUserActionAutoplay?: boolean;
1102
1090
  }
1103
1091
  declare class PlayList {
@@ -1119,29 +1107,118 @@ declare class PlayList {
1119
1107
  setStyle(style: any): void;
1120
1108
  destroy(): void;
1121
1109
  }
1110
+ /**
1111
+ * @brief 播放列表展示面板触发动作类型
1112
+ *
1113
+ */
1122
1114
  export declare const enum TOGGLE_MODES {
1115
+ /**
1116
+ * @brief 鼠标点击
1117
+ */
1123
1118
  CLICK = "click",
1119
+ /**
1120
+ * @brief 鼠标悬浮
1121
+ */
1124
1122
  HOVER = "hover"
1125
1123
  }
1124
+ /**
1125
+ * @list Options
1126
+ * @brief 播放列表项配置,支持 DirectUrl 和 Vid + playAuthToken 两种播放模式。
1127
+ * @notes 列表数据由外部提供,播放器内部不直接获取播放列表数据。
1128
+ * @kind property
1129
+ */
1126
1130
  export interface IPlayListItem {
1131
+ /**
1132
+ * @brief 视频地址
1133
+ * @notice `playAuthToken` 为空时,此参数必传。
1134
+ * @default -
1135
+ */
1127
1136
  url?: string;
1137
+ /**
1138
+ * @brief 播放临时安全凭证,由业务的 AppServer 签发。
1139
+ * @notice `url` 为空时,此参数必传。
1140
+ * @default -
1141
+ */
1128
1142
  playAuthToken?: string;
1143
+ /**
1144
+ * @brief 视频的唯一 ID。不传则取视频所在列表数组的序号。
1145
+ * @default -
1146
+ */
1129
1147
  vid: string;
1148
+ /**
1149
+ * @brief 封面图地址。
1150
+ * @default -
1151
+ */
1130
1152
  poster?: string;
1153
+ /**
1154
+ * @brief 视频标题。
1155
+ * @default -
1156
+ */
1131
1157
  title?: string;
1158
+ /**
1159
+ * @brief 视频时长,单位s
1160
+ * @default -
1161
+ */
1162
+ duration?: number;
1132
1163
  }
1133
1164
  declare enum EPlayMode {
1165
+ /**
1166
+ * @brief 顺序播放
1167
+ */
1134
1168
  ORDER = "order",
1169
+ /**
1170
+ * @brief 列表循环
1171
+ */
1135
1172
  LOOP = "loop"
1136
1173
  }
1174
+ /**
1175
+ * @list Options
1176
+ * @brief 播放列表插件配置项
1177
+ * @kind property
1178
+ */
1137
1179
  export interface IPlayListConfig {
1180
+ /**
1181
+ * @brief 图标位置
1182
+ * @notice 此参数同时影响“打开/关闭播放列表”和“播放下一个”两个按钮的位置。
1183
+ * @default controlsLeft 控制栏左侧
1184
+ */
1138
1185
  position?: string;
1186
+ /**
1187
+ * @brief 图标位置权重
1188
+ * @default 20
1189
+ */
1139
1190
  index?: number;
1191
+ /**
1192
+ * @brief 列表数据
1193
+ * @default []
1194
+ */
1140
1195
  list: IPlayListItem[];
1196
+ /**
1197
+ * @brief 循环模式
1198
+ * - order:不循环播放,即列表中最后一个视频播放完成后就停止播放。
1199
+ * - loop:列表循环,即列表中最后一个视频播放完成后将自动开始重新播放列表中的第一个视频。
1200
+ * @default order
1201
+ */
1141
1202
  mode?: EPlayMode;
1203
+ /**
1204
+ * @brief 默认起始播放序号
1205
+ * @default order
1206
+ */
1142
1207
  defaultIndex?: number;
1208
+ /**
1209
+ * @brief 列表点击之后是否隐藏列表
1210
+ * @default true
1211
+ */
1143
1212
  isItemClickHide?: boolean;
1213
+ /**
1214
+ * @brief 列表行为触发模式
1215
+ * @default click 点击
1216
+ */
1144
1217
  toggleMode?: TOGGLE_MODES;
1218
+ /**
1219
+ * @brief 是否显示图标
1220
+ * @default true
1221
+ */
1145
1222
  isShowIcon?: boolean;
1146
1223
  }
1147
1224
  export declare class PlayListPlugin extends Plugin {
@@ -1251,21 +1328,39 @@ export interface IPlayInfoList {
1251
1328
  Width: number;
1252
1329
  }
1253
1330
  declare enum CodecType {
1331
+ /**
1332
+ * @brief H.265
1333
+ */
1254
1334
  H265 = "h265",
1335
+ /**
1336
+ * @brief H.264
1337
+ */
1255
1338
  H264 = "h264",
1339
+ /**
1340
+ * @brief 未知编码
1341
+ */
1256
1342
  UNKNOWN = "unknown"
1257
1343
  }
1258
1344
  declare enum RTMCodec {
1259
1345
  H264 = "h264"
1260
1346
  }
1347
+ /**
1348
+ * @brief region 类型
1349
+ */
1261
1350
  export declare type TRegionType = "cn" | "mya" | "va" | "sg";
1351
+ /**
1352
+ * @brief 音乐循环模式
1353
+ * - order 顺序播放
1354
+ * - sloop 单曲循环
1355
+ * - loop 列表循环
1356
+ * - random 列表随机
1357
+ */
1262
1358
  export declare type PlayModeType = "order" | "sloop" | "loop" | "random";
1263
1359
  export interface IMusicListItem {
1264
1360
  /**
1265
1361
  * 音乐地址
1266
1362
  *
1267
1363
  * @type {string}
1268
- * @memberof IMusicListItem
1269
1364
  */
1270
1365
  src: string;
1271
1366
  /**
@@ -1289,11 +1384,20 @@ export interface IMusicListItem {
1289
1384
  * @memberof IMusicListItem
1290
1385
  */
1291
1386
  title?: string;
1387
+ /**
1388
+ * @hidden
1389
+ */
1292
1390
  [propName: string]: any;
1293
1391
  }
1392
+ /**
1393
+ * @brief 循环播放配置
1394
+ * @list Options
1395
+ * @kind property
1396
+ */
1294
1397
  export interface IABCycle {
1295
1398
  /**
1296
1399
  * AB循环段开始时间
1400
+ * @default 0
1297
1401
  *
1298
1402
  * @type {boolean}
1299
1403
  * @memberof IABCycle
@@ -1301,6 +1405,7 @@ export interface IABCycle {
1301
1405
  start: number;
1302
1406
  /**
1303
1407
  * AB循环段结束时间
1408
+ * @default 音乐结束时间点
1304
1409
  *
1305
1410
  * @type {boolean}
1306
1411
  * @memberof IABCycle
@@ -1308,16 +1413,26 @@ export interface IABCycle {
1308
1413
  end: number;
1309
1414
  /**
1310
1415
  * AB段是否循环播放
1416
+ * @default false
1311
1417
  *
1312
1418
  * @type {boolean}
1313
1419
  * @memberof IABCycle
1314
1420
  */
1315
1421
  loop?: boolean;
1422
+ /**
1423
+ * @hidden
1424
+ */
1316
1425
  [propName: string]: any;
1317
1426
  }
1427
+ /**
1428
+ * @list Options
1429
+ * @brief 音乐播放模式配置
1430
+ * @kind property
1431
+ */
1318
1432
  export interface IMusicConfig {
1319
1433
  /**
1320
1434
  * 是否启用离线下载播放
1435
+ * @default false
1321
1436
  *
1322
1437
  * @type {boolean}
1323
1438
  * @memberof IMusicConfig
@@ -1325,6 +1440,7 @@ export interface IMusicConfig {
1325
1440
  offline?: boolean;
1326
1441
  /**
1327
1442
  * AB循环设置
1443
+ * @default null
1328
1444
  *
1329
1445
  * @type {IABCycle}
1330
1446
  * @memberof IMusicConfig
@@ -1332,6 +1448,7 @@ export interface IMusicConfig {
1332
1448
  abCycle?: IABCycle | null;
1333
1449
  /**
1334
1450
  * 快进快退时间跨度
1451
+ * @default 15
1335
1452
  *
1336
1453
  * @type {number}
1337
1454
  * @memberof IMusicConfig
@@ -1339,6 +1456,7 @@ export interface IMusicConfig {
1339
1456
  timeScale?: number;
1340
1457
  /**
1341
1458
  * 循环模式
1459
+ * @default order
1342
1460
  *
1343
1461
  * @type {('order' | 'sloop' | 'loop' | 'random')}
1344
1462
  * @memberof IMusicConfig
@@ -1346,16 +1464,21 @@ export interface IMusicConfig {
1346
1464
  mode?: PlayModeType;
1347
1465
  /**
1348
1466
  * 播放列表
1467
+ * @default []
1349
1468
  *
1350
1469
  * @type {Array<IMusicListItem>}
1351
1470
  * @memberof IMusicConfig
1352
1471
  */
1353
1472
  list?: Array<IMusicListItem>;
1473
+ /**
1474
+ * @hidden
1475
+ */
1354
1476
  [propName: string]: any;
1355
1477
  }
1356
1478
  /**
1357
- * @detail Options
1479
+ * @list Options
1358
1480
  * @brief 播放地址列表, 可配置多线路和多清晰度
1481
+ * @kind property
1359
1482
  *
1360
1483
  * @export
1361
1484
  * @interface Stream
@@ -1398,42 +1521,48 @@ export interface Stream extends Partial<IPlayInfoList> {
1398
1521
  */
1399
1522
  definitionTextKey?: string;
1400
1523
  /**
1401
- * 编码格式
1402
- *
1403
- * @type {('h265' | 'h264')}
1404
- * @memberof Stream
1524
+ * @brief 编码格式
1525
+ * @default unknown
1405
1526
  */
1406
1527
  codec?: CodecType;
1407
1528
  /**
1408
1529
  * 线路唯一id
1409
- *
1410
- * @type {(number | string)}
1411
- * @memberof Stream
1412
1530
  */
1413
1531
  lineId?: number | string;
1414
1532
  /**
1415
1533
  * 多语言词典中对应的key, 比如 lineTextKey: LINE_ONE
1416
- *
1534
+ * @example
1535
+ * ```
1417
1536
  * languages: {
1418
1537
  * zh: {
1419
1538
  * LINE_ONE: '线路一'
1420
1539
  * }
1421
1540
  * }
1422
- *
1541
+ * ```
1423
1542
  * 则线路切换选项中显示“线路一”
1424
1543
  *
1425
1544
  * @type {string}
1426
1545
  * @memberof Stream
1427
1546
  */
1428
1547
  lineTextKey?: string;
1548
+ /**
1549
+ * @hidden
1550
+ */
1429
1551
  [propName: string]: any;
1430
1552
  }
1553
+ /**
1554
+ * @hidden
1555
+ */
1431
1556
  export interface Condition {
1432
1557
  definition?: string;
1433
1558
  lineId?: number | string;
1559
+ /**
1560
+ * @hidden
1561
+ */
1434
1562
  [propName: string]: any;
1435
1563
  }
1436
1564
  /**
1565
+ * @hidden
1437
1566
  * @description 播放器当前状态
1438
1567
  */
1439
1568
  export interface Current {
@@ -1442,110 +1571,302 @@ export interface Current {
1442
1571
  language: string;
1443
1572
  lineId?: number | string;
1444
1573
  codec?: CodecType;
1574
+ /**
1575
+ * @hidden
1576
+ */
1445
1577
  [propName: string]: any;
1446
1578
  }
1447
1579
  /**
1448
- * @detail Options
1449
- * @id 1
1450
- * @brief options参数列表:
1451
- * 本文档是介绍火山引擎直播和点播播放器VePlayer的相关参数和Api。
1580
+ * @list Options
1581
+ * @kind property
1582
+ * @brief 实例化参数配置项
1452
1583
  */
1453
1584
  export interface IPlayerConfig extends IPlayerOptions {
1454
- /**
1455
- * 是否是直播,默认为false
1456
- * @type {boolean}
1457
- * @memberof IPlayerConfig
1585
+ /** {zh}
1586
+ * @brief 是否是直播,默认为false
1587
+ * @default false
1588
+ * @hidden
1458
1589
  */
1459
1590
  isLive?: boolean;
1460
- /**
1461
- * 播放器容器id,VePlayer将被插入在该容器中
1462
- *
1463
- * @notes id和root必填一个
1464
- * @type {string}
1465
- * @memberof IPlayerConfig
1591
+ /** {zh}
1592
+ * @brief 播放器容器id,VePlayer将被插入在该容器中
1593
+ * @notes `id`和`root`参数至少传入 1 个。
1594
+ * @default -
1466
1595
  */
1467
1596
  id?: string;
1468
- /**
1469
- * 播放器容器,VePlayer将被插入在该容器中
1470
- *
1471
- * @type {HTMLElement}
1472
- * @memberof IPlayerConfig
1597
+ /** {zh}
1598
+ * @brief 播放器容器DOM元素,VePlayer将被插入在该容器中
1599
+ * @notes `id`和`root`参数至少传入 1 个。
1600
+ * @default -
1473
1601
  */
1474
1602
  root?: HTMLElement;
1475
- /**
1476
- * 播放地址
1477
- * 直播可通过 {@link https://console.volcengine.com/live/main/locationGenerate 视频直播控制台} 生成
1478
- *
1479
- * @type {string}
1480
- * @memberof IPlayerConfig
1603
+ /** {zh}
1604
+ * @brief 视频地址
1605
+ * @default -
1481
1606
  */
1482
1607
  url?: string;
1483
1608
  /**
1484
- * 播放地址类型,可以选值为“rtm”/“flv”/“mp4”/“hls”
1485
- * @notes 播放地址带后缀的则streamType非必填,否则为必填
1609
+ * @brief 视频点播媒资中的视频vid,推荐填写,以方便跟踪播放质量
1610
+ * @default -
1611
+ */
1612
+ vid?: string;
1613
+ /** {zh}
1614
+ * @brief vid播放配置项
1615
+ * @notes 需要业务方服务端通过vid生成临时playAuthToken
1486
1616
  *
1487
- * @type {(''mp4' | 'hls' | 'dash' | 'rtm' | 'flv')}
1617
+ * @type {IPlayAuthTokenConfig}
1488
1618
  * @memberof IPlayerConfig
1489
1619
  */
1620
+ getVideoByToken?: IPlayAuthTokenConfig;
1621
+ /** {zh}
1622
+ * @brief 视频格式/协议类型。取值如下:
1623
+ * - `mp4`
1624
+ * - `hls`
1625
+ * - `dash`
1626
+ * - `flv`
1627
+ * @notes 如果`url`参数视频地址不包含文件格式后缀,则`streamType`必传。
1628
+ */
1490
1629
  streamType?: "mp4" | "hls" | "dash" | "rtm" | "flv";
1491
- /**
1492
- * 是否总是显示清晰度切换控件,即只有一个清晰度时也显示清晰度切换控件
1493
- * @type {boolean}
1494
- * @memberof IPlayerConfig
1630
+ /** {zh}
1631
+ * @brief 播放器宽度,可以是数字或者css width 属性值,是数字时单位是`px`
1632
+ * @default 100%
1633
+ */
1634
+ width?: number | string;
1635
+ /** {zh}
1636
+ * @brief 播放器高度,可以是数字或者css width 属性值,是数字时单位是`px`
1637
+ * @default 100%
1638
+ */
1639
+ height?: number | string;
1640
+ /** {zh}
1641
+ * @brief 默认音量
1642
+ * @default 0.6
1643
+ */
1644
+ volume?: number;
1645
+ /** {zh}
1646
+ * @brief 是否自动播放。取值如下:
1647
+ * - `true`:是
1648
+ * - `false`:否
1649
+ * @default false
1650
+ * @notice 受限制于浏览器策略,自动播放不一定能成功,取决于浏览器环境、用户行为、浏览器配置等,详细参考自动播放 @link https://www.volcengine.com/docs/4/68693#%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE
1651
+ */
1652
+ autoplay?: boolean;
1653
+ poster?: string | IPoster;
1654
+ /** {zh}
1655
+ * @brief 是否开启静音自动播放。取值如下:
1656
+ * - `true`:是
1657
+ * - `false`:否
1658
+ * @default false
1659
+ */
1660
+ autoplayMuted?: boolean;
1661
+ /** {zh}
1662
+ * @brief 有声音自动播放失败时是否降级成静音自动播放,默认不降级
1663
+ * - `true`:是,降级
1664
+ * - `false`:否,不降级
1665
+ * @default false
1666
+ */
1667
+ enableDegradeMuteAutoplay?: boolean;
1668
+ /** {zh}
1669
+ * @brief 启用微信jsBridge方式的自动播放,默认不开启
1670
+ * - `true`:是,降级
1671
+ * - `false`:否,不降级
1672
+ * @default false
1673
+ */
1674
+ enableWxJsBridgeAutoplay?: boolean;
1675
+ /** {zh}
1676
+ * @brief 开启任意点击的用户行为触发自动播放,默认不开启
1677
+ * - `true`:是,开启
1678
+ * - `false`:否,不开启
1679
+ * @default false
1680
+ */
1681
+ enableUserActionAutoplay?: boolean;
1682
+ /** {zh}
1683
+ * @brief 是否开启循环播放。
1684
+ * - `true`:是,开启
1685
+ * - `false`:否,不开启
1686
+ * @default false
1687
+ */
1688
+ loop?: boolean;
1689
+ /** {zh}
1690
+ * @brief 默认起播倍速。参考值 0.5/0.75/1/1.5/2
1691
+ * @default 1
1692
+ */
1693
+ defaultPlaybackRate?: number;
1694
+ /** {zh}
1695
+ * @brief 国际化语言。支持自定义,默认语言类型包括:
1696
+ * - `zh` 或 `zh-cn`
1697
+ * - `en`
1698
+ * - `jp`
1699
+ * - `zh-hk`
1700
+ * @default zh
1701
+ */
1702
+ lang?: "zh" | "zh-cn" | "en" | "jp" | "zh-hk";
1703
+ /** {zh}
1704
+ * @brief 自定义多语言词典。可设置每个语种的词典 `{ [key: string]: Object; }`。例如:
1705
+ * ```javascript
1706
+ * {
1707
+ * zh: {
1708
+ * PIP: '画中画'
1709
+ * },
1710
+ * en: {
1711
+ * PIP: 'pip'
1712
+ * }
1713
+ * }
1714
+ * ```
1715
+ * @notice
1716
+ * @see 了解更多,请参见{@link https://www.volcengine.com/docs/6469/127529 默认词典}。
1717
+ */
1718
+ languages?: {
1719
+ [key: string]: Record<string, any>;
1720
+ };
1721
+ /** {zh}
1722
+ * @brief 画中画配置
1723
+ * @default PC: {position: 'controlsRight', index: 2.5, showIcon: true}; mobile:false
1724
+ * @notice 画中画功能由浏览器提供,如果本身浏览器不支持,即使有该配置也不显示画中画按钮
1725
+ */
1726
+ pip?: IPIPConfig | boolean;
1727
+ /** {zh}
1728
+ * @brief 全屏相关配置
1729
+ * @default {position: 'controlsRight', index: 0, rotateFullscreen: false, useCssFullscreen: false, target: null, switchCallback: null, disable: false, needBackIcon: false }
1730
+ */
1731
+ fullscreen?: IFullscreenConfig;
1732
+ /** {zh}
1733
+ * @breif 是否总是显示清晰度切换控件,即只有一个清晰度时也显示清晰度切换控件
1734
+ * @default false
1495
1735
  */
1496
1736
  alwaysShowDefinition?: boolean;
1497
- /**
1498
- * url对应视频的清晰度文案,仅alwaysShowDefinitiontrue时有效
1499
- *
1500
- * @type {string}
1501
- * @memberof IPlayerConfig
1737
+ /** {zh}
1738
+ * @breif url对应视频的清晰度文案,仅`alwaysShowDefinition`为`true`时有效
1739
+ * @default HD
1502
1740
  */
1503
1741
  definitionText?: string;
1504
- /**
1505
- * url对应视频的清晰度文案的多语言key,对应参数 languages 中相对应的文案,仅alwaysShowDefinition为true时有效,优先级高于definitionText
1506
- *
1507
- * @type {string}
1508
- * @memberof IPlayerConfig
1742
+ /** {zh}
1743
+ * @brief url对应视频的清晰度文案的多语言key,对应参数 languages 中相对应的文案,仅alwaysShowDefinition为true时有效,优先级高于definitionText
1744
+ * @default -
1509
1745
  */
1510
1746
  definitionTextKey?: string;
1511
- /**
1512
- * 视频编码方式
1747
+ /** {zh}
1748
+ * @brief 视频编码方式
1513
1749
  * 软解useSoftDecoding设置为true时,提供codec可提升软解初始效率
1514
- *
1515
- * @type {CodecType}
1516
- * @memberof IPlayerConfig
1750
+ * @notice 在已知视频编码方式的情况下推荐传入,以方便日志分析
1517
1751
  */
1518
- codec?: CodecType;
1519
- /**
1520
- * 区域,影响服务接口和日志上报
1521
- * @volcengine/veplayer默认区域为cn, @byteplus/veplayer默认区域为sg
1522
- * 火山引擎海外区域播放时请填写'sg'
1523
- *
1524
- * @type {TRegionType}
1525
- * @memberof IPlayerConfig
1752
+ codec?: `${CodecType}`;
1753
+ /** {zh}
1754
+ * @brief 点播服务所在区域,影响服务接口和日志上报
1755
+ * @default cn
1756
+ * @notice 火山引擎海外区域播放时请填写'mya'
1757
+ * @hidden
1758
+ */
1759
+ /** {en}
1760
+ * @brief The area where the on-demand service is located affects the service interface and log reporting.
1761
+ * @default sg
1762
+ * @hidden
1526
1763
  */
1527
1764
  region?: TRegionType;
1528
- /**
1529
- * 多语言配置key,影响播放器文案的语言种类
1530
- * @type {'zh' | 'zh-cn' | 'en' | 'jp' | 'zh-hk'}
1531
- * @memberof IPlayerConfig
1765
+ /** {zh}
1766
+ * @brief 插件加载公共路径,用于指定插件的加载路径,或者本地文件服务加载插件
1767
+ * @default https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/@volcengine/veplayer/${version}/plugin
1768
+ * @notice 可将插件文件夹置于业务方服务器上,指定插件的地址即可
1532
1769
  */
1533
- lang?: "zh" | "zh-cn" | "en" | "jp" | "zh-hk";
1534
- /**
1535
- * 插件加载公共路径,用于指定插件的加载路径,或者本地文件服务加载插件
1536
- *
1537
- * @type {(string)}
1538
- * @memberof IPlayerConfig
1770
+ /** {en}
1771
+ * @brief plug loading public path, used to specify the loading path of the plug-in, or the local file service to load the plug-in
1772
+ * @default https://sf-unpkg.bytepluscdn.com/obj/byteplusfe-sg/sdk/@byteplus/veplayer/${version}/plugin
1773
+ * @notice can place the plug-in folder on the business server and specify the address of the plug-in.
1539
1774
  */
1540
1775
  pluginPublicPath?: string;
1541
1776
  /**
1542
- * 是否音乐播放器模式
1777
+ * @brief 开始播放时间
1778
+ * @default -
1779
+ */
1780
+ startTime?: number;
1781
+ /** {zh}
1782
+ * @brief 为播放器设置是否启用内联播放模式。playsinline 属性是 HTML5 视频标签的一个属性,用于指定视频是否应在页面文档内播放。
1783
+ * - `true`:启用,表示视频将在页面文档内播放;
1784
+ * - `false`:停用,默认浏览器播放行为。</br>
1543
1785
  *
1544
- * @type {boolean}
1545
- * @memberof IPlayerConfig
1786
+ * 该配置项只在移动端生效,当取值为 true 的时候,会在初始化 video 或 audio 对象的时候,将 playsinline、webkit-playsinline、x5-playsinline 三个属性设置为 true,请参考 [New Policies for iOS](https://webkit.org/blog/6784/new-video-policies-for-ios/) 了解内联模式相关知识。
1787
+ * @listtip
1788
+ * - iOS 10 及以上系统 Safari 浏览器支持配置内联播放模式;
1789
+ * - iOS 10 以下系统 Safari 浏览器不支持配置内联播放模式 ,默认播放即进入系统全屏。
1790
+ * @default true
1791
+ */
1792
+ playsinline?: boolean;
1793
+ /** {zh}
1794
+ * @brief 为播放器设置 video 标签扩展属性,初始化时会设置在 videoElement 或 audioElement 对象上,请参考 [HTMLMediaElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement#properties) 查看其支持的属性配置。
1795
+ * @default 无
1796
+ */
1797
+ videoAttributes?: Partial<HTMLVideoElement>;
1798
+ /** {zh}
1799
+ * @brief 为播放器设置是否启用流式布局,启用流式布局后播放器会根据屏幕的宽度进行调整,保持在不同屏幕尺寸上都有良好的显示效果。
1800
+ * - `true`:启用
1801
+ * - `false`:停用
1802
+ * @listtip
1803
+ * 启用流式布局时:
1804
+ * - 如果 `width` 和 `height` 是 `Number` 类型,则按照其数值计算播放器宽高比;
1805
+ * - 如果 `width` 和 `height` 不是 `Number` 类型,默认使用 16:9 比例。
1806
+ * @default false
1807
+ */
1808
+ fluid?: boolean;
1809
+ /** {zh}
1810
+ * @brief 为播放器设置尺寸适配方式,在视频资源初始化之后,根据获取到的 videoWidth 和 videoHeight 值对播放器容器宽高比例进行调整,可选项有:
1811
+ * - `fixed`: 保持容器宽/高,不做适配;
1812
+ * - `fixWidth`: 保持容器宽度,适配高度;
1813
+ * - `fixHeight`: 保持容器高度,适配宽度。
1814
+ *
1815
+ * @default fixed
1816
+ */
1817
+ fitVideoSize?: "fixWidth" | "fixHeight" | "fixed";
1818
+ /** {zh}
1819
+ * @brief 为播放器设置视频画面填充模式,可选项有:
1820
+ * - `fillwidth`: 填充宽度,高度溢出则裁剪高度;
1821
+ * - `fillHeight`: 填充高度,宽度溢出则裁剪宽度;
1822
+ * - `fill`: 拉伸视频以填充容器;
1823
+ * - `cover`: 保持其宽高比的同时填充元素的整个内容框;
1824
+ * - `auto`: 使用浏览器默认的视频画面填充模式。
1825
+ * @default auto
1826
+ */
1827
+ videoFillMode?: "auto" | "fillHeight" | "fillWidth" | "fill" | "cover";
1828
+ /** {zh}
1829
+ * @brief 是否开启画面和控制栏分离模式。设置为开启时,控制栏将会常驻,与视频画面不重叠。
1830
+ * - `true`:开启
1831
+ * - `false`:关闭
1832
+ * @default false
1833
+ */
1834
+ marginControls?: boolean;
1835
+ /** {zh}
1836
+ * @brief 启用x5内核浏览器的同层播放。
1837
+ * @default 无
1838
+ */
1839
+ "x5-video-player-type"?: string;
1840
+ /** {zh}
1841
+ * @brief 是否启用x5内核浏览器的全屏播放模式。
1842
+ * - `true`:启用
1843
+ * - `false`:停用
1844
+ * @default 无
1845
+ */
1846
+ "x5-video-player-fullscreen"?: boolean;
1847
+ /** {zh}
1848
+ * @brief x5内核浏览器的横竖屏控制,支持如下取值:
1849
+ * - `landscape`:横屏
1850
+ * - `portrait`:竖屏
1851
+ * - `landscape|portrait`:跟随手机自动旋转
1852
+ * @default
1853
+ * - mobile:`landscape|portrait`
1854
+ * - pc:-
1855
+ */
1856
+ "x5-video-orientation"?: "landscape" | "portrait" | "landscape|portrait";
1857
+ /** {zh}
1858
+ * @brief 为播放器配置关键点样式。
1859
+ * @default 无
1860
+ * @hidden 直播目前没用到
1861
+ */
1862
+ commonStyle?: ICommonStyle;
1863
+ /** {zh}
1864
+ * @brief 是否启用音乐播放器模式
1865
+ * @default `false`
1546
1866
  */
1547
1867
  isMusic?: boolean;
1548
- /**
1868
+ /** {zh}
1869
+ * @hidden
1549
1870
  * 是否开启播放器原生控件菜单(右键触发)
1550
1871
  * @default false 默认不开启
1551
1872
  *
@@ -1553,249 +1874,177 @@ export interface IPlayerConfig extends IPlayerOptions {
1553
1874
  * @memberof IPlayerConfig
1554
1875
  */
1555
1876
  enableContextmenu?: boolean;
1556
- /**
1557
- * 关闭video上的阻止事件传播
1558
- * @default false 默认不阻止
1559
- *
1560
- * @type {boolean}
1561
- * @memberof IPlayerConfig
1877
+ /** {zh}
1878
+ * @brief 是否关闭video上的阻止事件传播
1879
+ * @default `false`
1562
1880
  */
1563
1881
  closeVideoStopPropagation?: boolean;
1564
- /**
1565
- * 右键菜单是否可用,启用后enableContextmenu强制为false
1566
- * @default false 默认不可用
1567
- *
1568
- * @type {boolean}
1569
- * @memberof IPlayerConfig
1882
+ /** {zh}
1883
+ * @brief 右键菜单是否可用
1884
+ * @default `false`
1570
1885
  */
1571
1886
  enableMenu?: boolean;
1572
- /**
1573
- * 是否开启hls的MSE模式,仅移动端生效,开启后采用MSE方式播放HLS,默认在移动端使用原生video播放hls
1574
- *
1575
- * @type {boolean}
1576
- * @memberof IPlayerConfig
1887
+ /** {zh}
1888
+ * @brief 是否开启hls的MSE模式,
1889
+ * @notice 仅移动端生效,开启后采用MSE方式播放HLS,默认在移动端使用原生video播放hls
1577
1890
  */
1578
1891
  enableHlsMSE?: boolean;
1579
- /**
1580
- * 在PC Safari上是否不使用hls插件播放,默认true。true: 启用;false: 不启用
1581
- *
1582
- * @type {boolean}
1583
- * @memberof IPlayerConfig
1892
+ /** {zh}
1893
+ * @brief 在PC Safari上是否使用hls插件播放
1894
+ * - true: 使用;
1895
+ * - false: 不使用
1896
+ * @default `true`
1584
1897
  */
1585
1898
  useHlsPluginForSafari?: boolean;
1586
- /**
1587
- * 是否开启mp4的MSE模式,开启后采用MSE方式播放MP4,
1588
- * 同时带来精确的seek加载、视频的无缝切换、流量节省等功能
1589
- *
1590
- * @type {boolean}
1591
- * @memberof IPlayerConfig
1899
+ /** {zh}
1900
+ * @brief 是否开启mp4的MSE模式,开启后采用MSE方式播放MP4,
1901
+ * mp4的MSE模式具有精确的seek加载、视频的无缝切换、流量节省等功能
1902
+ * @default `false`
1592
1903
  */
1593
1904
  enableMp4MSE?: boolean;
1594
- /**
1595
- * 播放列表
1905
+ /** {zh}
1906
+ * @brief 播放列表
1596
1907
  * @notes url和playList必填一个,二者都传入时, url必须在playList中。
1597
- *
1598
- * @type {Stream[]}
1599
- * @memberof IPlayerConfig
1908
+ * @default -
1600
1909
  */
1601
1910
  playList?: Stream[];
1602
- /**
1603
- * 插件,可自行选择高级插件。
1604
- * 目前支持的高级插件为: DefinitionDemotePlugin
1605
- *
1606
- * @type {any[]}
1607
- * @memberof IPlayerConfig
1911
+ /** {zh}
1912
+ * @brief 插件,可自行选择安装的插件,支持{@link https://h5player.bytedance.com/plugins/ 西瓜播放器插件}。
1913
+ * @default -
1608
1914
  */
1609
1915
  plugins?: any[];
1610
- /**
1611
- * 默认配置
1916
+ /** {zh}
1917
+ * @brief 忽略加载的插件,用于禁用默认加载的插件,传入插件名称数组,名称不区分大小写
1918
+ * @default []
1919
+ */
1920
+ ignores?: string[];
1921
+ /** {zh}
1922
+ * @brief 默认配置
1612
1923
  * @hidden
1613
- *
1614
- * @type {IDefaultConfig}
1615
- * @memberof IPlayerConfig
1616
1924
  */
1617
1925
  defaultConfig?: IDefaultConfig;
1618
- /**
1619
- * 设置多语言词典,可设置每个语言的多语言词典,
1620
- * 例如:
1621
- * {
1622
- * zh: {
1623
- * PIP: '画中画'
1624
- * },
1625
- * en: {
1626
- * PIP: 'pip'
1627
- * }
1628
- * }
1629
- *
1630
- * @type {{ [key: string]: Record<string, any> }}
1631
- * @memberof IPlayerConfig
1632
- */
1633
- languages?: {
1634
- [key: string]: Record<string, any>;
1635
- };
1636
- /**
1926
+ /** {zh}
1637
1927
  * @hidden
1638
- *
1639
- * @type {boolean}
1640
- * @memberof IPlayerConfig
1928
+ * @brief 模拟mobile
1641
1929
  */
1642
1930
  isMobile?: boolean;
1643
- /**
1644
- * umd依赖备用地址
1645
- * 用于依赖的CDN发生网络错误时的降级备用地址
1931
+ /** {zh}
1932
+ * @brief umd插件依赖备用地址
1933
+ * 用于依赖的插件所在CDN发生网络错误时的进行安全降级的备用地址,可以是相对地址
1646
1934
  * 支持的依赖有hls(非加密hls播放)、flv(flv播放)、XGVideo(软解播放)、hlsEncrypt(加密hls播放)、dash(dash播放)、mp4Encrypt(加密np4播放)、danmujs(弹幕)、danmuMask(蒙版弹幕)、subtitle(外挂字幕)
1935
+ * @example 以配置hls插件的备用地址为例
1936
+ * ```
1937
+ * const playerSdkIns = new VePlayer({
1938
+ * url: 'demo.m3u8',
1939
+ * id: 'video',
1940
+ * umdUrlMap: {
1941
+ * hls: '/VePlayerPlugin/hls.js'
1942
+ * }
1943
+ * })
1944
+ * ```
1945
+ * @default -
1946
+ * @notice 插件可以从{@link https://www.volcengine.com/docs/4/67077 集成SDK} 章节中下载SDK离线包获取
1647
1947
  */
1648
1948
  umdUrlMap?: Record<string, string>;
1649
1949
  /**
1650
- * 是否启用软解
1651
- * 默认: false
1652
- *
1653
- * @type {boolean}
1654
- * @memberof IPlayerConfig
1950
+ * @brief 唯一id,用于私有DRM加密
1951
+ * @default -
1952
+ */
1953
+ unionId?: string;
1954
+ /** {zh}
1955
+ * @brief 是否启用软解
1956
+ * @default `false`
1655
1957
  */
1656
1958
  useSoftDecoding?: boolean;
1657
- /**
1658
- * 是否开H265播放降级,即H.265硬解不支持时自动降级为软解
1659
- *
1660
- * @type {boolean}
1661
- * @memberof IPlayerConfig
1959
+ /** {zh}
1960
+ * @brief 是否开H265播放降级,即H.265硬解不支持时自动降级为软解
1961
+ * @default `false`
1662
1962
  */
1663
1963
  enableH265Degrade?: boolean;
1664
- /**
1665
- * 资源过期时的回调函数,用来更新视频资源
1666
- *
1667
- * @type {(any) => Promise<IPlayerConfig>}
1668
- * @memberof IPlayerConfig
1964
+ /** {zh}
1965
+ * @hidden
1966
+ * @brief 资源过期时的回调函数,用来更新视频资源
1967
+ * @default -
1669
1968
  */
1670
1969
  onMediaExpired?: () => Promise<IPlayerConfig>;
1671
- /**
1672
- * playAuthToken过期时的回调函数,用来更新playAuthToken
1673
- *
1674
- * @type {(any) => Promise<IPlayAuthTokenConfig>}
1675
- * @memberof IPlayerConfig
1970
+ /** {zh}
1971
+ * @brief playAuthToken过期时的回调函数,用来更新playAuthToken
1972
+ * @default -
1676
1973
  */
1677
1974
  onTokenExpired?: () => Promise<IPlayAuthTokenConfig>;
1678
- /**
1679
- * 定期检查资源过期的周期,单位秒,默认400
1680
- *
1681
- * @type {boolean}
1682
- * @memberof IPlayerConfig
1975
+ /** {zh}
1976
+ * @hidden
1977
+ * @brief 定期检查资源过期的周期,单位秒
1978
+ * @default `400`
1683
1979
  */
1684
1980
  checkExpireInterval?: number;
1685
- /**
1686
- * 定期检查资源过期的方式,支持三种类型
1687
- * urlExpire 根据url的过期时间判断
1688
- * xhrStatus 发送资源请求,根据资源xhr状态判断
1689
- * getUrlTime 根据估算的地址获取时间判断
1690
- * @type {boolean}
1691
- * @memberof IPlayerConfig
1692
- */
1693
- expireDetectType?: Array<"xhrStatus" | "getUrlTime">;
1694
- /**
1695
- * 有声音自动播放失败时是否降级成静音自动播放,默认不降级
1696
- *
1697
- * @type {boolean}
1698
- * @memberof IPlayerConfig
1699
- */
1700
- enableDegradeMuteAutoplay?: boolean;
1701
- /**
1702
- * 启用微信jsBridge方式的自动播放,默认不开启
1703
- *
1704
- * @type {boolean}
1705
- * @memberof IPlayerConfig
1706
- */
1707
- enableWxJsBridgeAutoplay?: boolean;
1708
- /**
1709
- * 开启任意点击的用户行为触发自动播放,默认不开启
1710
- *
1711
- * @type {boolean}
1712
- * @memberof IPlayerConfig
1981
+ /** {zh}
1982
+ * @hidden
1983
+ * @brief 定期检查资源过期的方式,支持三种类型
1984
+ * - `urlExpire`: 根据url的过期时间判断
1985
+ * - `xhrStatus`: 发送资源请求,根据资源xhr状态判断
1986
+ * - `getUrlTime`: 根据估算的地址获取时间判断
1713
1987
  */
1714
- enableUserActionAutoplay?: boolean;
1715
- /**
1716
- * 禁用点播日志配置检测,默认开启,如果未配置line_app_id则会播放报错
1717
- *
1718
- * @type {boolean}
1719
- * @memberof IPlayerConfig
1988
+ expireDetectType?: Array<"urlExpire" | "xhrStatus" | "getUrlTime">;
1989
+ /** {zh}
1990
+ * @hidden
1991
+ * @brief 禁用点播日志配置检测,默认开启,如果未配置line_app_id则会播放报错
1992
+ * @default -
1720
1993
  */
1721
1994
  disableVodLogOptsCheck?: boolean;
1722
- /**
1723
- * 播放器报错展示配置, 可以配置播放异常时的播放器显示的异常文案、图片,以及是否提供刷新按钮等
1724
- *
1995
+ /** {zh}
1996
+ * @brief 播放器报错展示配置, 可以配置播放异常时的播放器显示的异常文案、图片,以及是否提供刷新按钮等
1997
+ * @default -
1725
1998
  */
1726
1999
  sdkErrorPlugin?: ISdkErrorConfig;
1727
- /**
1728
- * rtm配置,配置rtm拉流参数
2000
+ /** {zh}
2001
+ * @brief rtm配置,配置rtm拉流参数
1729
2002
  * @notes 传入rtm流url时才生效
1730
- *
1731
- * @type {IRtmConfig}
1732
- * @memberof IPlayerConfig
2003
+ * @default -
1733
2004
  */
1734
2005
  rtm?: IRtmConfig;
1735
2006
  /**
1736
- * 弹幕及面板配置,可配置弹幕的一些参数,如弹幕文字大小、透明度、展示区域等,
1737
- *
1738
- * @type {InitConfig | boolean}
1739
- * @memberof IPlayerConfig
2007
+ * @brief 弹幕及面板配置,可配置弹幕的一些参数,如弹幕文字大小、透明度、展示区域等
2008
+ * @default -
1740
2009
  */
1741
- DanmuPlugin?: InitConfig | boolean;
2010
+ DanmuPlugin?: IDanmuConfig | boolean;
1742
2011
  /**
1743
- * 清晰度自动降级配置
1744
- * @notes 需要先引入DefinitionDemotePlugin插件,plugins: [window.VePlayer.DefinitionDemotePlugin]
1745
- *
1746
- * @type {IDefinitionDemotePlugin}
1747
- * @memberof IPlayerConfig
2012
+ * @brief 清晰度自动降级配置
2013
+ * @hidden
2014
+ * @notes 需要先引入DefinitionDemotePlugin插件,plugins: [VePlayer.DefinitionDemotePlugin]
1748
2015
  */
1749
2016
  DefinitionDemotePlugin?: IDefinitionDemotePlugin;
1750
2017
  /**
1751
- * 唯一id,用于私有DRM加密
1752
- *
1753
- * @type {string}
1754
- * @memberof IPlayerConfig
1755
- */
1756
- unionId?: string;
1757
- /**
1758
- * vid播放配置项
1759
- * @notes 需要业务方服务端通过vid生成临时playAuthToken
1760
- *
1761
- * @type {IPlayAuthTokenConfig}
1762
- * @memberof IPlayerConfig
1763
- */
1764
- getVideoByToken?: IPlayAuthTokenConfig;
1765
- /**
1766
- * dash 播放配置项
1767
- * @type {Partial<IDashPluginConfig>}
1768
- * @memberof IPlayerConfig
2018
+ * @hidden
2019
+ * @brief DASH 播放配置项
2020
+ * @default -
1769
2021
  */
1770
2022
  DASHPlugin?: Partial<IDashPluginConfig>;
1771
2023
  /**
1772
- * hls 加密播放配置项
1773
- * @type {Partial<IEncryptHlsPluginConfig> | boolean}
1774
- * @memberof IPlayerConfig
2024
+ * @brief HLS 加密播放配置项
2025
+ * @default -
1775
2026
  */
1776
2027
  EncryptHlsPlugin?: Partial<IEncryptHlsPluginConfig> | boolean;
1777
2028
  /**
1778
- * 质量日志配置项
1779
- * @type {Partial<IVodLogOptsConfig>}
1780
- * @memberof IPlayerConfig
2029
+ * @brief 质量日志配置项
2030
+ * @default -
1781
2031
  */
1782
2032
  vodLogOpts?: Partial<IVodLogOptsConfig>;
1783
2033
  /**
1784
- * mp4加密播放配置项
1785
- * @type {Partial<IMp4EncryptPlayerConfig> | boolean}
1786
- * @memberof IPlayerConfig
2034
+ * @hidden
2035
+ * @brief mp4加密播放配置项
2036
+ * @default -
1787
2037
  */
1788
2038
  Mp4EncryptPlayer?: Partial<IMp4EncryptPlayerConfig> | boolean;
1789
2039
  /**
1790
- * 自适应码率配置项
1791
- * @type {IAutoBitrateOptsConfig}
1792
- * @memberof IPlayerConfig
2040
+ * @hidden
2041
+ * @brief 自适应码率配置项
2042
+ * @default -
1793
2043
  */
1794
2044
  autoBitrateOpts?: IAutoBitrateOptsConfig;
1795
2045
  /**
1796
- * 外挂字幕配置项
1797
- * @type {ISubtitleConfig}
1798
- * @memberof IPlayerConfig
2046
+ * @brief 外挂字幕配置项
2047
+ * @default -
1799
2048
  */
1800
2049
  Subtitle?: ISubtitleConfig;
1801
2050
  /**
@@ -1824,10 +2073,8 @@ export interface IPlayerConfig extends IPlayerOptions {
1824
2073
  playListPlugin?: IPlayListConfig;
1825
2074
  }
1826
2075
  /**
1827
- * 初始配置
1828
- *
1829
- * @export
1830
- * @interface IDefaultConfig
2076
+ * @brief初始配置
2077
+ * @hidden
1831
2078
  */
1832
2079
  export interface IDefaultConfig {
1833
2080
  /**
@@ -1888,105 +2135,80 @@ export interface IDefaultConfig {
1888
2135
  LiveSubtitlesIconPlugin?: any;
1889
2136
  }
1890
2137
  /**
1891
- * vid播放配置信息
1892
- *
1893
- * @detail Options
1894
- * @description PlayAuthToken获取视频信息配置
1895
- * @export
1896
- * @interface IPlayAuthTokenConfig
2138
+ * @brief vid播放配置信息
2139
+ * @list Options
2140
+ * @kind property
1897
2141
  */
1898
2142
  export interface IPlayAuthTokenConfig {
1899
- /**
1900
- * 服务端生成的临时playAuthToken
1901
- *
1902
- * @type {string}
1903
- * @memberof IPlayAuthTokenConfig
2143
+ /** {zh}
2144
+ * @brief 服务端生成的临时播放凭证。
2145
+ * @default -
1904
2146
  */
1905
2147
  playAuthToken: string;
1906
- /**
1907
- * 默认清晰度
1908
- *
2148
+ /** {zh}
2149
+ * @brief 默认清晰度
2150
+ * @default -
1909
2151
  * @notes 为空时默认为最大码率的清晰度
1910
- * @type {string}
1911
- * @memberof IPlayAuthTokenConfig
1912
2152
  */
1913
2153
  defaultDefinition?: string;
1914
- /**
1915
- * 求地址接口域名
1916
- *
1917
- * @notes 默认为`//vod.volcengineapi.com`
1918
- * @type {string}
1919
- * @memberof IPlayAuthTokenConfig
2154
+ /** {zh}
2155
+ * @brief 获取播放地址的请求域名。
2156
+ * @default`https://vod.volcengineapi.com`
2157
+ */
2158
+ /** {en}
2159
+ * @brief Get the requested domain name of the playback address
2160
+ * @default `https://vod.byteplusapi.com`
1920
2161
  */
1921
2162
  playDomain?: string;
1922
- /**
1923
- * 是否启用控制台设置的封面图,默认false
1924
- * @type {boolean}
1925
- * @memberof IPlayAuthTokenConfig
2163
+ /** {zh}
2164
+ * @brief 是否启用控制台设置的封面图
2165
+ * @default `false`
1926
2166
  */
1927
2167
  needPoster?: boolean;
1928
- /**
1929
- * 是否启用控制台设置的雪碧图,默认false
1930
- * @type {boolean}
1931
- * @memberof IPlayAuthTokenConfig
2168
+ /** {zh}
2169
+ * @brief 是否启用控制台设置的截图中的雪碧图
2170
+ * @default `false`
1932
2171
  */
1933
2172
  needThumbs?: boolean;
1934
- /**
1935
- * 是否启用控制台设置的蒙版弹幕,默认false
1936
- * @type {boolean}
1937
- * @memberof IPlayAuthTokenConfig
2173
+ /** {zh}
2174
+ * @brief 是否启用控制台设置的蒙版弹幕
2175
+ * @default `false`
1938
2176
  */
1939
2177
  needBarrageMask?: boolean;
1940
- /**
1941
- * 是否需要多清晰度,默认为true
1942
- * @type {boolean}
1943
- * @memberof IPlayAuthTokenConfig
2178
+ /** {zh}
2179
+ * @brief 是否需要多清晰度
2180
+ * @default `true`
1944
2181
  */
1945
2182
  needDefinitionList?: boolean;
1946
- /**
1947
- * hls标准加密播放所用的keyToken
1948
- * @type {boolean}
1949
- * @memberof IPlayAuthTokenConfig
1950
- */
1951
- keyToken?: string;
1952
- /**
1953
- * 密钥请求域名
1954
- * @type {string}
1955
- * @memberof IPlayAuthTokenConfig
2183
+ /** {zh}
2184
+ * @briefhls标准加密播放所需要的keyToken
2185
+ * @default -
1956
2186
  */
1957
- keyDomain?: string;
1958
- /**
1959
- * 获取key方式,默认'TOP'
1960
- * @type {string}
1961
- * @memberof IPlayAuthTokenConfig
2187
+ keyToken?: string;
2188
+ /** {zh}
2189
+ * @hidden
2190
+ * @brief 获取key方式,默认'TOP'
2191
+ * @default `'TOP'`
1962
2192
  */
1963
2193
  getKeyType?: string;
1964
- /**
1965
- * 获取privateDrmAuthToken的异步回调,
1966
- * @type {(
1967
- * playAuthIds: string,
1968
- * vid: string,
1969
- * unionInfo: string,
1970
- * ) => Promise<string>}
2194
+ /** {zh}
2195
+ * @brief 获取`PrivateDrmAuthToken`的异步回调,
1971
2196
  * 回调入参:
1972
- * playAuthIds 视频的密钥 KeyID,对应OpenAPI GetPlayInfo{@link https://www.volcengine.com/docs/4/2918#%E8%AF%B7%E6%B1%82%E8%AF%B4%E6%98%8E} 返回视频信息中的PlayAuthId,当有多个KeyID时以英文逗号相连
1973
- * vid 视频vid
1974
- * unionInfo unionId生成的unionInfo,以用来加密PrivateDrmAuthToken
1975
- * @memberof IPlayAuthTokenConfig
1976
- *
2197
+ * - `playAuthIds`: 视频的密钥 KeyID,对应OpenAPI GetPlayInfo{@link https://www.volcengine.com/docs/4/2918#%E8%AF%B7%E6%B1%82%E8%AF%B4%E6%98%8E} 返回视频信息中的PlayAuthId,当有多个KeyID时以英文逗号相连
2198
+ * - `vid`: 视频vid
2199
+ * - `unionInfo`: 由`unionId`生成的`unionInfo`,以用来加密`PrivateDrmAuthToken`
2200
+ * @default -
1977
2201
  */
1978
2202
  getDrmAuthToken?: (playAuthIds: string, vid: string, unionInfo: string) => Promise<string>;
1979
- /**
1980
- * 可携带aid等透传参数,如
2203
+ /** {zh}
2204
+ * @brief 可携带aid等透传参数,如:
1981
2205
  * {aid: 1234},以playAuthToken下发的参数的优先级最高。
1982
2206
  * 具体可传参数见{@link https://www.volcengine.com/docs/4/65659 签发 PlayAuthToken}
1983
- *
1984
- * @type {Record<string, number | string | boolean>}
1985
- * @memberof IPlayAuthTokenConfig
2207
+ * @default -
1986
2208
  */
1987
2209
  reqParams?: Record<string, number | string | boolean>;
1988
- /**
1989
- * 定义清晰度的映射
2210
+ /** {zh}
2211
+ * @brief 定义清晰度的映射
1990
2212
  *
1991
2213
  * @example 如:
1992
2214
  * ``` javascript
@@ -2009,21 +2231,19 @@ export interface IPlayAuthTokenConfig {
2009
2231
  * }
2010
2232
  * ```
2011
2233
  * `definitionTextKey`用来指定多语言的key
2012
- * @type {Record<string, string | definitionItem>}
2013
- * @memberof IPlayAuthTokenConfig
2234
+ * @default -
2014
2235
  */
2015
2236
  definitionMap?: Record<string, string | definitionItem>;
2016
- /**
2017
- * 服务502错误时重试次数,默认为1
2018
- * @type {number}
2019
- * @memberof IPlayAuthTokenConfig
2237
+ /** {zh}
2238
+ * @brief 点播服务502错误时重试次数
2239
+ * @default 1
2020
2240
  */
2021
2241
  retryCount?: number;
2022
2242
  }
2023
2243
  /**
2024
2244
  * 清晰度定义
2025
2245
  *
2026
- * @detail Options
2246
+ * @list Options
2027
2247
  * @export
2028
2248
  * @interface definitionItem
2029
2249
  */
@@ -2095,34 +2315,242 @@ export interface IAutoBitrateOptsConfig {
2095
2315
  module?: any;
2096
2316
  }
2097
2317
  /**
2098
- * 初始配置
2099
- *
2100
- * @export
2318
+ * @brief 记忆播放配置项
2319
+ * @kind property
2320
+ * @list Options
2101
2321
  * @interface IMemoryPlayConfig
2102
2322
  */
2103
2323
  export interface IMemoryPlayConfig {
2104
2324
  /**
2105
- * 存储标识id
2325
+ * @brief 存储标识id
2326
+ * @default options.vid || options.url
2106
2327
  *
2107
2328
  * @type {number | string}
2108
2329
  * @memberof IMemoryPlayConfig
2109
2330
  */
2110
2331
  memoryId: number | string;
2111
2332
  /**
2112
- * 设置时间函数
2333
+ * @brief 设置时间函数
2334
+ * @default -
2113
2335
  *
2114
2336
  * @type {(id: number | string, time: number) => unknown}
2115
2337
  * @memberof IMemoryPlayConfig
2116
2338
  */
2117
2339
  saveTime: (id: number | string, time: number) => unknown;
2118
2340
  /**
2119
- * 获取最后一次播放时间函数
2120
- *
2121
- * @type {(id: number | string) => number | Promise<number>}
2122
- * @memberof IMemoryPlayConfig
2341
+ * @brief 获取最后一次播放时间函数
2342
+ * @default -
2123
2343
  */
2124
2344
  getTime: (id: number | string) => number | Promise<number>;
2125
2345
  }
2346
+ /**
2347
+ * @brief 插件按钮位置
2348
+ */
2349
+ export declare const enum POSITIONS {
2350
+ /**
2351
+ * @brief 播放器根节点
2352
+ */
2353
+ ROOT = "root",
2354
+ /**
2355
+ * @brief 播放器根节点左侧
2356
+ */
2357
+ ROOT_LEFT = "rootLeft",
2358
+ /**
2359
+ * @brief 播放器根节点右侧
2360
+ */
2361
+ ROOT_RIGHT = "rootRight",
2362
+ /**
2363
+ * @brief 播放器根节点顶部
2364
+ */
2365
+ ROOT_TOP = "rootTop",
2366
+ /**
2367
+ * @brief 播控栏左侧
2368
+ */
2369
+ CONTROLS_LEFT = "controlsLeft",
2370
+ /**
2371
+ * @brief 播控栏左侧
2372
+ */
2373
+ CONTROLS_RIGTH = "controlsRight",
2374
+ /**
2375
+ * @brief 播控栏右侧
2376
+ */
2377
+ CONTROLS_RIGHT = "controlsRight",
2378
+ /**
2379
+ * @brief 播控栏中间
2380
+ */
2381
+ CONTROLS_CENTER = "controlsCenter",
2382
+ /** @hidden
2383
+ * @brief 播控栏左侧
2384
+ */
2385
+ CONTROLS = "controls"
2386
+ }
2387
+ export interface IIconPluginConfig {
2388
+ position?: POSITIONS;
2389
+ index?: number;
2390
+ }
2391
+ /**
2392
+ * @brief 画中画配置项
2393
+ * @list Options
2394
+ * @kind property
2395
+ */
2396
+ export interface IPIPConfig extends IIconPluginConfig {
2397
+ /** {zh}
2398
+ * @brief 是否显示画中画按钮
2399
+ * - `true`:是,显示
2400
+ * - `false`:否,不显示
2401
+ * @default `false`
2402
+ */
2403
+ showIcon?: boolean;
2404
+ /** {zh}
2405
+ * @brief 是否优先采用文档画中画,仅浏览器支持 DocumentPictureInPicture 才生效
2406
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/DocumentPictureInPicture DocumentPictureInPicture}
2407
+ * - `true`:是,优先使用文档画中画
2408
+ * - `false`:否
2409
+ * @default `false`
2410
+ */
2411
+ preferDocument?: boolean;
2412
+ /** {zh}
2413
+ * @brief 文档画中画窗口的宽度
2414
+ * @default -
2415
+ */
2416
+ width?: number;
2417
+ /** {zh}
2418
+ * @brief 文档画中画窗口的高度
2419
+ * @default -
2420
+ */
2421
+ height?: number;
2422
+ /** {zh}
2423
+ * @brief 文档画中画窗口的根节点
2424
+ * @default -
2425
+ */
2426
+ docPiPNode?: HTMLElement;
2427
+ /** {zh}
2428
+ * @brief 文档画中画窗口的css style
2429
+ * @default -
2430
+ */
2431
+ docPiPStyle?: ((...arg: any) => string) | string;
2432
+ }
2433
+ /**
2434
+ * @brief 全屏配置
2435
+ * @list Options
2436
+ * @kind property
2437
+ */
2438
+ export interface IFullscreenConfig {
2439
+ /** {zh}
2440
+ * @brief 是否使用页面全屏代替全屏功能。取值如下:
2441
+ - `true`:页面全屏;
2442
+ - `false`:系统全屏。
2443
+ * @default `false`
2444
+ */
2445
+ useCssFullscreen?: boolean;
2446
+ /** {zh}
2447
+ * @brief 是否使用旋转横屏。取值如下:
2448
+ * - `false`:否。
2449
+ * - `true`:是,即全屏将会在竖屏状态下把 dom 旋转 90 度实现横屏效果。
2450
+ * @default `false`
2451
+ * @notice
2452
+ * - 该配置优先于 `useCssFullscreen` 配置。
2453
+ * - 该配置一般在移动端使用。
2454
+ */
2455
+ rotateFullscreen?: boolean;
2456
+ /** {zh}
2457
+ * @brief 自定义全屏作用的dom,默认是播放器根节点, 该配置项必须是player.root的父辈节点,使用场景是解决全屏下和player.root同级的dom需要显示的场景
2458
+ * @default `null`
2459
+ */
2460
+ target?: HTMLElement;
2461
+ /** {zh}
2462
+ * @brief 是否禁用全凭按钮功能,禁用后不渲染全屏按钮
2463
+ * - `true`:禁用;
2464
+ * - `false`:不禁用。
2465
+ * @default `false`
2466
+ */
2467
+ disable?: boolean;
2468
+ /** {zh}
2469
+ * @brief 全屏的时候是否使用右上角返回按钮
2470
+ * - `true`:显示;
2471
+ * - `false`:不显示。
2472
+ * @default `false`
2473
+ * @notice 该配置一般在移动端开启
2474
+ */
2475
+ needBackIcon?: boolean;
2476
+ /** {zh}
2477
+ * @brief 全屏切换自定义实现,该函数配置相当于完全替代插件内部的切换逻辑
2478
+ * @default `null`
2479
+ */
2480
+ switchCallback?: (...arg: any) => any;
2481
+ }
2482
+ /**
2483
+ * @list Options
2484
+ * @kind property
2485
+ */
2486
+ export interface ICommonStyle {
2487
+ /** {zh}
2488
+ * @brief 进度条底色
2489
+ * @default 无
2490
+ */
2491
+ progressColor?: string;
2492
+ /** {zh}
2493
+ * @brief 播放完成部分进度条底色
2494
+ * @default 无
2495
+ */
2496
+ playedColor?: string;
2497
+ /** {zh}
2498
+ * @brief 缓存部分进度条底色
2499
+ * @default 无
2500
+ */
2501
+ cachedColor?: string;
2502
+ /** {zh}
2503
+ * @brief 进度条滑块样式
2504
+ * @default 无
2505
+ */
2506
+ sliderBtnStyle?: CSSStyleDeclaration;
2507
+ /** {zh}
2508
+ * @brief 音量颜色
2509
+ * @default 无
2510
+ */
2511
+ volumeColor?: string;
2512
+ }
2513
+ /**
2514
+ * @list Options
2515
+ * @brief 封面配置
2516
+ * @kind property
2517
+ */
2518
+ export interface IPoster {
2519
+ /** {zh}
2520
+ * @brief 封面图地址
2521
+ * @default -
2522
+ */
2523
+ poster: string;
2524
+ /**
2525
+ * @brief 是否在播放结束之后显示
2526
+ * @default `true`
2527
+ */
2528
+ isEndedShow?: boolean;
2529
+ /**
2530
+ * @brief 是否播放后隐藏
2531
+ * - `true`:播放后才隐藏,在视频地址更新后会重新显示poster
2532
+ * - `false`:在play事件触发后隐藏poster
2533
+ * @default `false`
2534
+ */
2535
+ hideCanplay?: boolean;
2536
+ /**
2537
+ * @brief 是否一直显示
2538
+ * @default `false`
2539
+ */
2540
+ notHidden?: boolean;
2541
+ /**
2542
+ * @brief 封面图填充方式
2543
+ * - `fixWidth`:宽度方向填充,不会被拉伸压缩
2544
+ * - `fixHeight`:高度方向完全填充,不会被拉伸压缩
2545
+ * - `cover`:方式完全覆盖容器,多余但部分会被裁剪
2546
+ * - `contain`:完全覆盖,与容器不匹配时会被拉伸压缩
2547
+ */
2548
+ fillMode?: "fixWidth" | "fixHeight" | "cover" | "contain";
2549
+ }
2550
+ /**
2551
+ * @brief api map
2552
+ * @hidden
2553
+ */
2126
2554
  export interface ApiMapConfig {
2127
2555
  playDomain: string;
2128
2556
  backupPlayDomain?: string;
@@ -2130,6 +2558,10 @@ export interface ApiMapConfig {
2130
2558
  declare enum StrategyNames {
2131
2559
  H265 = "h265"
2132
2560
  }
2561
+ /**
2562
+ * @hidden
2563
+ * @brief 策略配置项
2564
+ */
2133
2565
  export declare type StrategyConfigOptions = {
2134
2566
  [StrategyNames.H265]?: boolean | {
2135
2567
  Strategy?: any;
@@ -2256,6 +2688,10 @@ declare class PlayerData {
2256
2688
  setVodTeaId(): void;
2257
2689
  }
2258
2690
  declare function isMSESupport(mime?: string): boolean;
2691
+ /**
2692
+ * @hidden
2693
+ * @brief 移动端交互面板配置
2694
+ */
2259
2695
  export interface IConfig {
2260
2696
  mode?: number;
2261
2697
  isAutoChange?: boolean;
@@ -2301,6 +2737,10 @@ declare enum UmdKeys {
2301
2737
  VeStrategy = "vestrategy",
2302
2738
  VeStrategyH265 = "vestrategy_h265"
2303
2739
  }
2740
+ /**
2741
+ * @hidden
2742
+ * @breif umdmap 配置
2743
+ */
2304
2744
  export declare type UMDMap = Record<UmdKeys, {
2305
2745
  name: string;
2306
2746
  pluginName?: string;
@@ -2341,30 +2781,33 @@ declare class umdLoader {
2341
2781
  */
2342
2782
  loadPlugins(pluginName: UmdKeys, successCallback?: () => void): Promise<any>;
2343
2783
  }
2784
+ /**
2785
+ * @hidden
2786
+ */
2787
+ export declare type PlayerCore = Player & {
2788
+ sdk?: VePlayer;
2789
+ changePluginsIcon?: (name: any, isShow: any) => void;
2790
+ playerData?: PlayerData;
2791
+ playerType?: string;
2792
+ playerVersion?: string;
2793
+ panel?: MobilePlayerPanel;
2794
+ emitExpireTimestamp?: number;
2795
+ vodLogger?: VodLogger;
2796
+ };
2344
2797
  declare class VePlayer {
2345
2798
  /**
2346
- * 播放相关配置数据
2799
+ * @brief 播放相关配置数据
2347
2800
  * @hidden
2348
- *
2349
2801
  * @type {PlayerData}
2350
2802
  * @memberof VePlayer
2351
2803
  */
2352
2804
  playerData: PlayerData;
2353
2805
  /**
2354
- * 播放器内核实例
2806
+ * @brief 播放器内核实例, 详情参考{@link https://www.volcengine.com/docs/4/109909#%E6%92%AD%E6%94%BE%E5%99%A8%E5%86%85%E6%A0%B8 播放内核}
2355
2807
  * @type {*}
2356
2808
  * @memberof VePlayer
2357
2809
  */
2358
- player: Player & {
2359
- sdk?: VePlayer;
2360
- changePluginsIcon?: (name: any, isShow: any) => void;
2361
- playerData?: PlayerData;
2362
- playerType?: string;
2363
- playerVersion?: string;
2364
- panel?: MobilePlayerPanel;
2365
- emitExpireTimestamp?: number;
2366
- vodLogger?: VodLogger;
2367
- };
2810
+ player: PlayerCore;
2368
2811
  /**
2369
2812
  * @hidden
2370
2813
  *
@@ -2459,18 +2902,39 @@ declare class VePlayer {
2459
2902
  * @memberof VePlayer
2460
2903
  */
2461
2904
  sdkUmdLoader: umdLoader;
2905
+ /**
2906
+ * @hidden
2907
+ */
2462
2908
  static isMSESupported: typeof isMSESupport;
2909
+ /**
2910
+ * @hidden
2911
+ */
2463
2912
  static isRTMSupported: typeof import("@byted/xgplayer-rts").RtsPlugin.isSupported;
2913
+ /**
2914
+ * @hidden
2915
+ */
2464
2916
  static veStrategy: typeof VeStrategy;
2917
+ /**
2918
+ * @brief sdk版本
2919
+ */
2465
2920
  static sdkVersion: string;
2921
+ /**
2922
+ * @hidden
2923
+ * @param codec
2924
+ * @param options
2925
+ */
2466
2926
  static isRTMSupportCodec: (codec: RTMCodec, options: {
2467
2927
  targetProfileLevel?: string;
2468
2928
  }) => Promise<boolean>;
2469
2929
  private vodLogCommon;
2930
+ /**
2931
+ * @brief 构造函数
2932
+ * @param configs sdk配置
2933
+ */
2470
2934
  constructor(configs: IPlayerConfig);
2471
2935
  /**
2472
2936
  *
2473
- *
2937
+ * @hidden
2474
2938
  * @private
2475
2939
  * @param {IPlayerConfig} configs 播放器配置
2476
2940
  * @memberof VePlayer
@@ -2494,6 +2958,10 @@ declare class VePlayer {
2494
2958
  * @memberof VePlayer
2495
2959
  */
2496
2960
  private initUmdLoader;
2961
+ /**
2962
+ * @hidden
2963
+ * @private
2964
+ */
2497
2965
  private checkVodLogOptions;
2498
2966
  /**
2499
2967
  * @hidden
@@ -2509,28 +2977,28 @@ declare class VePlayer {
2509
2977
  onRepeat(): void;
2510
2978
  /**
2511
2979
  * @hidden
2512
- * @description 触发过期事件
2980
+ * @brief 触发过期事件
2513
2981
  * @memberof VePlayer
2514
2982
  */
2515
2983
  emitExpireEvent(): void;
2516
2984
  /**
2517
2985
  * @hidden
2518
- * @description 地址获取时间
2986
+ * @brief 地址获取时间
2519
2987
  * @memberof VePlayer
2520
2988
  */
2521
2989
  getUrlTimestamp(url: string): void;
2522
2990
  /**
2523
- * @description 监听sdk事件
2991
+ * @brief 监听sdk事件
2524
2992
  *
2525
- * @param {string} action
2993
+ * @param action 监听的事件名
2526
2994
  * @param {(...args: any[]) => void} func
2527
2995
  * @memberof VePlayer
2528
2996
  */
2529
2997
  on(action: string, func: (...args: any[]) => void): void;
2530
2998
  /**
2531
- * @description 触发sdk事件
2999
+ * @brief 触发sdk事件
2532
3000
  *
2533
- * @param {string} action
3001
+ * @param {string} action 监听的事件名
2534
3002
  * @param {*} [payload]
2535
3003
  * @memberof VePlayer
2536
3004
  */
@@ -2570,16 +3038,7 @@ declare class VePlayer {
2570
3038
  * @return {*}
2571
3039
  * @memberof VePlayer
2572
3040
  */
2573
- createPlayer(): Promise<Player & {
2574
- sdk?: VePlayer;
2575
- changePluginsIcon?: (name: any, isShow: any) => void;
2576
- playerData?: PlayerData;
2577
- playerType?: string;
2578
- playerVersion?: string;
2579
- panel?: MobilePlayerPanel;
2580
- emitExpireTimestamp?: number;
2581
- vodLogger?: VodLogger;
2582
- }>;
3041
+ createPlayer(): Promise<PlayerCore>;
2583
3042
  /**
2584
3043
  * @hidden
2585
3044
  *
@@ -2604,8 +3063,8 @@ declare class VePlayer {
2604
3063
  */
2605
3064
  setDefaultConfigOptions(options: any): void;
2606
3065
  /**
2607
- * 获取当前播放视频数据
2608
- *
3066
+ * @brief 获取当前播放视频数据
3067
+ * @hidden
2609
3068
  * @return {any}
2610
3069
  * @memberof VePlayer
2611
3070
  */
@@ -2633,6 +3092,10 @@ declare class VePlayer {
2633
3092
  */
2634
3093
  beforePlayerCreate(): Promise<void>;
2635
3094
  private prepareStrategies;
3095
+ /**
3096
+ * @hidden
3097
+ * @brief 更新播放策略
3098
+ */
2636
3099
  updateConfigByStrategy(): void;
2637
3100
  /**
2638
3101
  * @hidden
@@ -2714,14 +3177,14 @@ declare class VePlayer {
2714
3177
  /**
2715
3178
  * @hidden
2716
3179
  *
2717
- * @description 对外提供获取SDK插件实例的方法
3180
+ * @brief 对外提供获取SDK插件实例的方法
2718
3181
  * @param { string } name
2719
3182
  * @return {*}
2720
3183
  * @memberof VePlayer
2721
3184
  */
2722
3185
  getSdkPlugin(name: any): any;
2723
3186
  /**
2724
- * @description 更换playAuthToken的方法
3187
+ * @brief 更换playAuthToken的方法
2725
3188
  * @notes 这里指同一个视频切换视频源,不能用来切换不同类型的视频
2726
3189
  * @param { IPlayAuthTokenConfig } config authToken配置
2727
3190
  * @param { boolean } isNewVideo 是否是新视频,默认true。若未false即表示同一个视频切换token播放,会在切换前时间点继续播放
@@ -2729,18 +3192,18 @@ declare class VePlayer {
2729
3192
  */
2730
3193
  switchAuthToken(config: IPlayAuthTokenConfig, isNewVideo?: boolean): Promise<void>;
2731
3194
  /**
2732
- * @description 更新playAuthToken的方法,用来更新视频地址
2733
- * @param { IPlayAuthTokenConfig } config
3195
+ * @brief 更新playAuthToken的方法,用来更新视频地址
3196
+ * @param { IPlayAuthTokenConfig } config playAuthToken配置
2734
3197
  * @memberof VePlayer
2735
3198
  */
2736
3199
  updateAuthToken(config: IPlayAuthTokenConfig): Promise<void>;
2737
3200
  /**
2738
- * @description 返回当前视频的地址
3201
+ * @brief 返回当前视频的地址
2739
3202
  * @memberof VePlayer
2740
3203
  */
2741
3204
  get src(): any;
2742
3205
  /**
2743
- * @description 设置当前视频的地址
3206
+ * @brief 设置当前视频的地址
2744
3207
  * @notes 会重新拉取新的视频,从0开始起播
2745
3208
  * @memberof VePlayer
2746
3209
  */
@@ -2766,7 +3229,7 @@ declare class VePlayer {
2766
3229
  *
2767
3230
  * @param {IPlayerConfig} config
2768
3231
  * @param { boolean } isNewVideo 是否是新视频,默认true。若为false即表示同一个视频切换地址播放,会在切换前的时间点继续播放
2769
- * @description 默认切换后是暂停状态,如果设置了自动播放,则会自动播放
3232
+ * @brief 默认切换后是暂停状态,如果设置了自动播放,则会自动播放
2770
3233
  * @return{Promise<any>}
2771
3234
  * @memberof VePlayer
2772
3235
  */
@@ -2791,16 +3254,7 @@ declare class VePlayer {
2791
3254
  * @return {*}
2792
3255
  * @memberof VePlayer
2793
3256
  */
2794
- getPlayerInstance(): Player & {
2795
- sdk?: VePlayer;
2796
- changePluginsIcon?: (name: any, isShow: any) => void;
2797
- playerData?: PlayerData;
2798
- playerType?: string;
2799
- playerVersion?: string;
2800
- panel?: MobilePlayerPanel;
2801
- emitExpireTimestamp?: number;
2802
- vodLogger?: VodLogger;
2803
- };
3257
+ getPlayerInstance(): PlayerCore;
2804
3258
  /**
2805
3259
  * @hidden
2806
3260
  *
@@ -2816,7 +3270,7 @@ declare class VePlayer {
2816
3270
  /**
2817
3271
  * @hidden
2818
3272
  *
2819
- * @description 获取h265软解播放时的播放列表
3273
+ * @brief 获取h265软解播放时的播放列表
2820
3274
  * @memberof VePlayer
2821
3275
  */
2822
3276
  setH265SoftPlayList(): void;
@@ -3262,6 +3716,36 @@ export declare class Subtitle extends Plugin {
3262
3716
  destroy(): void;
3263
3717
  render(): string;
3264
3718
  }
3719
+ export interface WatermarkConfig {
3720
+ enable: boolean;
3721
+ content: string;
3722
+ displayType: 0 | 1 | 2;
3723
+ fontSize: number | string;
3724
+ fontColor: string;
3725
+ opacity: number;
3726
+ tickerSpeed?: "SLOW" | "MODERATE" | "FAST";
3727
+ fontFamily?: string;
3728
+ top?: number;
3729
+ left?: number;
3730
+ bottom?: number;
3731
+ right?: number;
3732
+ }
3733
+ export declare class DynamicWatermarkPlugin extends Plugin {
3734
+ private wm;
3735
+ static get pluginName(): string;
3736
+ static get defaultConfig(): WatermarkConfig & {
3737
+ position: string;
3738
+ };
3739
+ constructor(props: any);
3740
+ afterCreate(): void;
3741
+ start(): void;
3742
+ pause(): void;
3743
+ resume(): void;
3744
+ resize(): void;
3745
+ _initWatermark(): void;
3746
+ destroy(): void;
3747
+ render(): string | HTMLElement;
3748
+ }
3265
3749
  export declare class DefinitionDemotePlugin extends Plugin {
3266
3750
  static get pluginName(): string;
3267
3751
  waitings: number[];
@@ -3616,7 +4100,7 @@ export declare const Events: {
3616
4100
  */
3617
4101
  CANCEL_UNMUTE: string;
3618
4102
  /**
3619
- * 处罚刷新
4103
+ * 刷新按钮点击
3620
4104
  */
3621
4105
  REFRESH_CLICK: string;
3622
4106
  /**
@@ -3723,6 +4207,154 @@ export declare const Events: {
3723
4207
  * 播放列表播放项变更
3724
4208
  */
3725
4209
  PLAY_LIST_ITEM_CHANGE: string;
4210
+ /** {zh}
4211
+ * 播放器完成实例化
4212
+ */
4213
+ /** {en}
4214
+ * The player is instantiated.
4215
+ */
4216
+ READY: string;
4217
+ /** {zh}
4218
+ * 播放器创建video完成,可以开始播放
4219
+ */
4220
+ /** {en}
4221
+ * The player has created the video and the playback is ready to start.
4222
+ */
4223
+ COMPLETE: string;
4224
+ /** {zh}
4225
+ * 播放资源发生变化
4226
+ */
4227
+ /** {en}
4228
+ * The playback address changes.
4229
+ */
4230
+ URL_CHANGE: string;
4231
+ /** {zh}
4232
+ * 播放器聚焦
4233
+ */
4234
+ /** {en}
4235
+ * The player has focus.
4236
+ */
4237
+ PLAYER_FOCUS: string;
4238
+ /** {zh}
4239
+ * 播放器失焦
4240
+ */
4241
+ /** {en}
4242
+ * The player loses focus.
4243
+ */
4244
+ PLAYER_BLUR: string;
4245
+ /** {zh}
4246
+ * 系统全屏状态切换
4247
+ */
4248
+ /** {en}
4249
+ * The player switches to or from full-window mode, in which the player covers the entire desktop.
4250
+ */
4251
+ FULLSCREEN_CHANGE: string;
4252
+ /** {zh}
4253
+ * 网页样式全屏状态切换
4254
+ */
4255
+ /** {en}
4256
+ * The player switches to or from full-screen mode, in which the player covers the browser window.
4257
+ */
4258
+ CSS_FULLSCREEN_CHANGE: string;
4259
+ /**
4260
+ * @brief 画中画播放模式切换
4261
+ */
4262
+ MINI_STATE_CHANGE: string;
4263
+ /** {zh}
4264
+ * 播放器销毁
4265
+ */
4266
+ /** {en}
4267
+ * The player is destroyed.
4268
+ */
4269
+ DESTROY: string;
4270
+ /** {zh}
4271
+ * 播放器重新播放
4272
+ */
4273
+ /** {en}
4274
+ * Replay starts.
4275
+ */
4276
+ REPLAY: string;
4277
+ /**
4278
+ * @brief 重试
4279
+ */
4280
+ RETRY: string;
4281
+ /** {zh}
4282
+ * 清晰度发生变化
4283
+ */
4284
+ /** {en}
4285
+ * The video resolution changes.
4286
+ */
4287
+ DEFINITION_CHANGE: string;
4288
+ /** {zh}
4289
+ * @hidden
4290
+ */
4291
+ /** {en}
4292
+ * @hidden
4293
+ */
4294
+ Before_DEFINITION_CHANGE: string;
4295
+ /** {zh}
4296
+ * @hidden
4297
+ */
4298
+ /** {en}
4299
+ * @hidden
4300
+ */
4301
+ AFTER_DEFINITION_CHANGE: string;
4302
+ /** {zh}
4303
+ * 播放器容器尺寸发生变化
4304
+ */
4305
+ /** {en}
4306
+ * The size of the player container changes.
4307
+ */
4308
+ VIDEO_RESIZE: string;
4309
+ /** {zh}
4310
+ * 画中画状态切换
4311
+ */
4312
+ /** {en}
4313
+ * The player switches to or from Picture-in-Picture (PIP) mode.
4314
+ */
4315
+ PIP_CHANGE: string;
4316
+ /** {zh}
4317
+ * 播放器被旋转
4318
+ */
4319
+ /** {en}
4320
+ * The player is rotated.
4321
+ */
4322
+ ROTATE: string;
4323
+ /** {zh}
4324
+ * 播放器内置快捷键事件触发
4325
+ */
4326
+ /** {en}
4327
+ * A built-in shortcut event occurs within the player.
4328
+ */
4329
+ SHORTCUT: string;
4330
+ /** {zh}
4331
+ * SEI 信息解析
4332
+ */
4333
+ /** {en}
4334
+ * The player parses the SEI information.
4335
+ */
4336
+ SEI_PARSED: string;
4337
+ /** {zh}
4338
+ * 内置插件用户行为触发,所有内置插件用户行为交互都会下发该事件,可用于用户行为埋点
4339
+ */
4340
+ /** {en}
4341
+ * A user event occurs within a built-in plug-in. This event applies to all built-in plug-ins and can be used for tracking user behaviors.
4342
+ */
4343
+ USER_ACTION: string;
4344
+ /** {zh}
4345
+ * 自动播放成功
4346
+ */
4347
+ /** {en}
4348
+ * Autoplay starts successfully.
4349
+ */
4350
+ AUTOPLAY_STARTED: string;
4351
+ /** {zh}
4352
+ * 自动播放失败
4353
+ */
4354
+ /** {en}
4355
+ * Autoplay fails to start.
4356
+ */
4357
+ AUTOPLAY_PREVENTED: string;
3726
4358
  /**
3727
4359
  * 播放器完成创建
3728
4360
  */
@@ -3747,66 +4379,267 @@ export declare const Events: {
3747
4379
  * umd 加载失败
3748
4380
  */
3749
4381
  UMD_LOAD_FAIL: string;
3750
- PLAY: "play";
3751
- PLAYING: "playing";
3752
- ENDED: "ended";
3753
- PAUSE: "pause";
3754
- ERROR: "error";
3755
- SEEKING: "seeking";
3756
- SEEKED: "seeked";
3757
- TIME_UPDATE: "timeupdate";
3758
- WAITING: "waiting";
3759
- CANPLAY: "canplay";
3760
- CANPLAY_THROUGH: "canplaythrough";
3761
- DURATION_CHANGE: "durationchange";
3762
- VOLUME_CHANGE: "volumechange";
3763
- LOADED_DATA: "loadeddata";
3764
- LOADED_METADATA: "loadedmetadata";
3765
- RATE_CHANGE: "ratechange";
3766
- PROGRESS: "progress";
3767
- LOAD_START: "loadstart";
3768
- EMPTIED: "emptied";
3769
- STALLED: "stalled";
3770
- SUSPEND: "suspend";
3771
- ABORT: "abort";
3772
- BUFFER_CHANGE: "bufferedChange";
3773
- PLAYER_FOCUS: "focus";
3774
- PLAYER_BLUR: "blur";
3775
- READY: "ready";
3776
- URL_NULL: "urlNull";
3777
- AUTOPLAY_STARTED: "autoplay_started";
3778
- AUTOPLAY_PREVENTED: "autoplay_was_prevented";
3779
- COMPLETE: "complete";
3780
- REPLAY: "replay";
3781
- DESTROY: "destroy";
3782
- URL_CHANGE: "urlchange";
3783
- DOWNLOAD_SPEED_CHANGE: "download_speed_change";
3784
- FULLSCREEN_CHANGE: "fullscreen_change";
3785
- CSS_FULLSCREEN_CHANGE: "cssFullscreen_change";
3786
- MINI_STATE_CHANGE: "mini_state_change";
3787
- DEFINITION_CHANGE: "definition_change";
3788
- BEFORE_DEFINITION_CHANGE: "before_definition_change";
3789
- AFTER_DEFINITION_CHANGE: "after_definition_change";
3790
- SEI_PARSED: "SEI_PARSED";
3791
- RETRY: "retry";
3792
- VIDEO_RESIZE: "video_resize";
3793
- PIP_CHANGE: "pip_change";
3794
- ROTATE: "rotate";
3795
- SCREEN_SHOT: "screenShot";
3796
- PLAYNEXT: "playnext";
3797
- SHORTCUT: "shortcut";
3798
- XGLOG: "xglog";
3799
- USER_ACTION: "user_action";
3800
- RESET: "reset";
3801
- SOURCE_ERROR: "source_error";
3802
- SOURCE_SUCCESS: "source_success";
3803
- SWITCH_SUBTITLE: "switch_subtitle";
3804
- VIDEO_EVENTS: string[];
3805
- STATS_EVENTS: typeof XgEvents.STATS_EVENTS;
3806
- FPS_STUCK: "fps_stuck";
4382
+ /**
4383
+ * @brief 在播放被终止时触发。例如:当播放中的视频重新开始播放。
4384
+ */
4385
+ ABORT: string;
4386
+ /** {zh}
4387
+ * @brief在媒体数据已经有足够的数据(至少播放数帧)可供播放时触发。
4388
+ **/
4389
+ CANPLAY: string;
4390
+ /** {zh}
4391
+ * @brief表明媒体可以在保持当前的下载速度的情况下不被中断地播放完毕。
4392
+ * @notice 手动设置currentTime会使得firefox触发一次canplaythrough事件,其他浏览器或许不会如此。
4393
+ */
4394
+ CANPLAY_THROUGH: string;
4395
+ /** {zh}
4396
+ * @brief表明媒体的长度发生了改变。例如:在媒体已被加载足够的长度从而得知总长度时会触发这个事件。
4397
+ */
4398
+ DURATION_CHANGE: string;
4399
+ /**
4400
+ * @brief 媒体被清空(初始化)时触发
4401
+ */
4402
+ EMPITED: string;
4403
+ /** {zh}
4404
+ * 视频播放完毕
4405
+ */
4406
+ /** {en}
4407
+ * Video playback ends.
4408
+ */
4409
+ ENDED: string;
4410
+ /** {zh}
4411
+ * 发生错误
4412
+ */
4413
+ ERROR: string;
4414
+ /** {zh}
4415
+ * @brief媒体的第一帧已经加载完毕
4416
+ */
4417
+ LOADED_DATA: string;
4418
+ /**
4419
+ * 媒体的元数据已经加载完毕,playerSdkIns.player.video 可获取所有的video属性
4420
+ */
4421
+ LOADED_META_DATA: string;
4422
+ /** {zh}
4423
+ * 媒体内容开始加载
4424
+ */
4425
+ LOAD_START: string;
4426
+ /** {zh}
4427
+ * 视频暂停播放
4428
+ */
4429
+ /** {en}
4430
+ * Video playback pauses.
4431
+ */
4432
+ PAUSE: string;
4433
+ /** {zh}
4434
+ * @brief 视频开始播放
4435
+ */
4436
+ /** {en}
4437
+ * @brief Video playback starts.
4438
+ */
4439
+ PLAY: string;
4440
+ /** {zh}
4441
+ * 恢复播放(包括暂停后恢复播放或卡顿后恢复播放)
4442
+ */
4443
+ /** {en}
4444
+ * Video playback resumes after a pause or freeze.
4445
+ */
4446
+ PLAYING: string;
4447
+ /**
4448
+ * 媒体下载进度,即已缓存播放数据进度
4449
+ */
4450
+ PROGRESS: string;
4451
+ /**
4452
+ * 播放速率变化
4453
+ */
4454
+ RATE_CHANGE: string;
4455
+ /**
4456
+ * 在跳跃(seek)操作完成时触发
4457
+ */
4458
+ SEEKED: string;
4459
+ /**
4460
+ * 在跳跃(seek)操作开始时触发
4461
+ */
4462
+ SEEKING: string;
4463
+ /**
4464
+ * 在尝试获取媒体数据,但数据不可用时触发。
4465
+ */
4466
+ STALLED: string;
4467
+ /**
4468
+ * 在媒体资源加载终止时触发,这可能是因为下载已完成或因为其他原因暂停。
4469
+ */
4470
+ SUSPEND: string;
4471
+ /** {zh}
4472
+ * 视频播放时间更新
4473
+ */
4474
+ /** {en}
4475
+ * The video playback time is updated.
4476
+ */
4477
+ TIME_UPDATE: string;
4478
+ /** {zh}
4479
+ * 视频音量发生变化
4480
+ */
4481
+ /** {en}
4482
+ * The video volume changes.
4483
+ */
4484
+ VOLUME_CHANGE: string;
4485
+ /** {zh}
4486
+ * 等待加载数据
4487
+ */
4488
+ /** {en}
4489
+ * The player is loading data.
4490
+ */
4491
+ WAITING: string;
3807
4492
  };
3808
4493
  export declare const Event: {
3809
4494
  SDKEvents: {
4495
+ /** {zh}
4496
+ * 播放器完成实例化
4497
+ */
4498
+ /** {en}
4499
+ * The player is instantiated.
4500
+ */
4501
+ READY: string;
4502
+ /** {zh}
4503
+ * 播放器创建video完成,可以开始播放
4504
+ */
4505
+ /** {en}
4506
+ * The player has created the video and the playback is ready to start.
4507
+ */
4508
+ COMPLETE: string;
4509
+ /** {zh}
4510
+ * 播放资源发生变化
4511
+ */
4512
+ /** {en}
4513
+ * The playback address changes.
4514
+ */
4515
+ URL_CHANGE: string;
4516
+ /** {zh}
4517
+ * 播放器聚焦
4518
+ */
4519
+ /** {en}
4520
+ * The player has focus.
4521
+ */
4522
+ PLAYER_FOCUS: string;
4523
+ /** {zh}
4524
+ * 播放器失焦
4525
+ */
4526
+ /** {en}
4527
+ * The player loses focus.
4528
+ */
4529
+ PLAYER_BLUR: string;
4530
+ /** {zh}
4531
+ * 系统全屏状态切换
4532
+ */
4533
+ /** {en}
4534
+ * The player switches to or from full-window mode, in which the player covers the entire desktop.
4535
+ */
4536
+ FULLSCREEN_CHANGE: string;
4537
+ /** {zh}
4538
+ * 网页样式全屏状态切换
4539
+ */
4540
+ /** {en}
4541
+ * The player switches to or from full-screen mode, in which the player covers the browser window.
4542
+ */
4543
+ CSS_FULLSCREEN_CHANGE: string;
4544
+ /**
4545
+ * @brief 画中画播放模式切换
4546
+ */
4547
+ MINI_STATE_CHANGE: string;
4548
+ /** {zh}
4549
+ * 播放器销毁
4550
+ */
4551
+ /** {en}
4552
+ * The player is destroyed.
4553
+ */
4554
+ DESTROY: string;
4555
+ /** {zh}
4556
+ * 播放器重新播放
4557
+ */
4558
+ /** {en}
4559
+ * Replay starts.
4560
+ */
4561
+ REPLAY: string;
4562
+ /**
4563
+ * @brief 重试
4564
+ */
4565
+ RETRY: string;
4566
+ /** {zh}
4567
+ * 清晰度发生变化
4568
+ */
4569
+ /** {en}
4570
+ * The video resolution changes.
4571
+ */
4572
+ DEFINITION_CHANGE: string;
4573
+ /** {zh}
4574
+ * @hidden
4575
+ */
4576
+ /** {en}
4577
+ * @hidden
4578
+ */
4579
+ Before_DEFINITION_CHANGE: string;
4580
+ /** {zh}
4581
+ * @hidden
4582
+ */
4583
+ /** {en}
4584
+ * @hidden
4585
+ */
4586
+ AFTER_DEFINITION_CHANGE: string;
4587
+ /** {zh}
4588
+ * 播放器容器尺寸发生变化
4589
+ */
4590
+ /** {en}
4591
+ * The size of the player container changes.
4592
+ */
4593
+ VIDEO_RESIZE: string;
4594
+ /** {zh}
4595
+ * 画中画状态切换
4596
+ */
4597
+ /** {en}
4598
+ * The player switches to or from Picture-in-Picture (PIP) mode.
4599
+ */
4600
+ PIP_CHANGE: string;
4601
+ /** {zh}
4602
+ * 播放器被旋转
4603
+ */
4604
+ /** {en}
4605
+ * The player is rotated.
4606
+ */
4607
+ ROTATE: string;
4608
+ /** {zh}
4609
+ * 播放器内置快捷键事件触发
4610
+ */
4611
+ /** {en}
4612
+ * A built-in shortcut event occurs within the player.
4613
+ */
4614
+ SHORTCUT: string;
4615
+ /** {zh}
4616
+ * SEI 信息解析
4617
+ */
4618
+ /** {en}
4619
+ * The player parses the SEI information.
4620
+ */
4621
+ SEI_PARSED: string;
4622
+ /** {zh}
4623
+ * 内置插件用户行为触发,所有内置插件用户行为交互都会下发该事件,可用于用户行为埋点
4624
+ */
4625
+ /** {en}
4626
+ * A user event occurs within a built-in plug-in. This event applies to all built-in plug-ins and can be used for tracking user behaviors.
4627
+ */
4628
+ USER_ACTION: string;
4629
+ /** {zh}
4630
+ * 自动播放成功
4631
+ */
4632
+ /** {en}
4633
+ * Autoplay starts successfully.
4634
+ */
4635
+ AUTOPLAY_STARTED: string;
4636
+ /** {zh}
4637
+ * 自动播放失败
4638
+ */
4639
+ /** {en}
4640
+ * Autoplay fails to start.
4641
+ */
4642
+ AUTOPLAY_PREVENTED: string;
3810
4643
  /**
3811
4644
  * 播放器完成创建
3812
4645
  */
@@ -3854,7 +4687,7 @@ export declare const Event: {
3854
4687
  */
3855
4688
  CANCEL_UNMUTE: string;
3856
4689
  /**
3857
- * 处罚刷新
4690
+ * 刷新按钮点击
3858
4691
  */
3859
4692
  REFRESH_CLICK: string;
3860
4693
  /**