@byteplus/veplayer 1.8.0 → 2.3.0-rc.0

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.
Files changed (53) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +6 -39
  3. package/esm/index.d.ts +3167 -0
  4. package/esm/veplayer.biz.live.development.css +41 -0
  5. package/esm/veplayer.biz.live.development.js +3400 -0
  6. package/esm/veplayer.biz.live.production.css +1 -0
  7. package/esm/veplayer.biz.live.production.js +2 -0
  8. package/esm/veplayer.biz.vod.development.js +13 -0
  9. package/esm/veplayer.biz.vod.production.js +2 -0
  10. package/esm/veplayer.d.ts +6921 -0
  11. package/esm/veplayer.development.css +743 -0
  12. package/esm/veplayer.development.js +22032 -0
  13. package/esm/veplayer.live.d.ts +6923 -0
  14. package/esm/veplayer.live.development.css +743 -0
  15. package/esm/veplayer.live.development.js +22031 -0
  16. package/esm/veplayer.live.production.css +1 -0
  17. package/esm/veplayer.live.production.js +11 -0
  18. package/esm/veplayer.production.css +1 -0
  19. package/esm/veplayer.production.js +11 -0
  20. package/esm/veplayer.vod.d.ts +3167 -0
  21. package/esm/veplayer.vod.development.css +702 -0
  22. package/esm/veplayer.vod.development.js +13861 -0
  23. package/esm/veplayer.vod.production.css +1 -0
  24. package/esm/veplayer.vod.production.js +11 -0
  25. package/package.json +78 -8
  26. package/umd/index.d.ts +3167 -0
  27. package/umd/veplayer.biz.live.development.css +41 -0
  28. package/umd/veplayer.biz.live.development.js +3412 -0
  29. package/umd/veplayer.biz.live.production.css +1 -0
  30. package/umd/veplayer.biz.live.production.js +1 -0
  31. package/umd/veplayer.biz.vod.development.js +30 -0
  32. package/umd/veplayer.biz.vod.production.js +1 -0
  33. package/umd/veplayer.d.ts +6921 -0
  34. package/umd/veplayer.development.css +743 -0
  35. package/umd/veplayer.development.js +22035 -0
  36. package/umd/veplayer.live.d.ts +6923 -0
  37. package/umd/veplayer.live.development.css +743 -0
  38. package/umd/veplayer.live.development.js +22043 -0
  39. package/umd/veplayer.live.production.css +1 -0
  40. package/umd/veplayer.live.production.js +1 -0
  41. package/umd/veplayer.production.css +1 -0
  42. package/umd/veplayer.production.js +1 -0
  43. package/umd/veplayer.vod.d.ts +3167 -0
  44. package/umd/veplayer.vod.development.css +702 -0
  45. package/umd/veplayer.vod.development.js +13876 -0
  46. package/umd/veplayer.vod.production.css +1 -0
  47. package/umd/veplayer.vod.production.js +1 -0
  48. package/veplayer.d.ts +6921 -0
  49. package/veplayer.live.d.ts +6923 -0
  50. package/veplayer.vod.d.ts +3167 -0
  51. package/index.d.ts +0 -3974
  52. package/index.min.css +0 -1
  53. package/index.min.js +0 -2
package/index.d.ts DELETED
@@ -1,3974 +0,0 @@
1
- import VodLogger from '@byted/xgplayer-app-logger/es/logger.js';
2
- import VeStrategy from '@volcengine/vestrategy';
3
- import { StrategyRecommendation, VeStrategyInitOptions } from '@volcengine/vestrategy';
4
- import { VeStrategyH265Config } from '@volcengine/vestrategy-h265';
5
- import { Property } from 'dom-helpers/esm/types';
6
- import EventEmitter from 'eventemitter3';
7
- import Player from 'xgplayer';
8
- import { BasePlugin, Events as XgEvents, I18N, IXGI18nText, Plugin } from 'xgplayer';
9
-
10
- declare enum POSITIONS {
11
- ROOT = "root",
12
- ROOT_LEFT = "rootLeft",
13
- ROOT_RIGHT = "rootRight",
14
- ROOT_TOP = "rootTop",
15
- CONTROLS_LEFT = "controlsLeft",
16
- CONTROLS_RIGHT = "controlsRight",
17
- CONTROLS_CENTER = "controlsCenter"
18
- }
19
- /**
20
- * @detail Options
21
- *
22
- *
23
- * @export
24
- * @interface ISdkErrorConfig
25
- */
26
- export interface ISdkErrorConfig {
27
- /**
28
- * 报错时是否显示提示图片
29
- * 默认:true
30
- *
31
- * @type {boolean}
32
- * @memberof ISdkErrorConfig
33
- */
34
- errorImg?: boolean;
35
- /**
36
- * 报错时是否展示
37
- * 默认:true
38
- *
39
- * @type {boolean}
40
- * @memberof ISdkErrorConfig
41
- */
42
- errorTips?: boolean;
43
- /**
44
- * 报错时是否展示“刷新”按钮
45
- * 默认:true
46
- *
47
- * @type {boolean}
48
- * @memberof ISdkErrorConfig
49
- */
50
- isNeedRefreshButton?: boolean;
51
- /**
52
- * 报错后是否进行降级,true则降级到playlist中相应 backUrlList字段(type为 rtm 不能设置true)
53
- * 默认:false
54
- *
55
- * @type {boolean}
56
- * @memberof ISdkErrorConfig
57
- */
58
- isNeedDemoteBack?: boolean;
59
- /**
60
- *
61
- * 报错后重试次数
62
- * 默认: 1
63
- *
64
- * @type {number}
65
- * @memberof ISdkErrorConfig
66
- */
67
- retryLoopNum?: number;
68
- /**
69
- *
70
- * 报错后提示文案
71
- * 默认:播放发生错误,点击刷新试试吧
72
- *
73
- * @type {(HTMLElement | string)}
74
- * @memberof ISdkErrorConfig
75
- */
76
- errorTipsText?: HTMLElement | string;
77
- /**
78
- * 播放器中所处的位置
79
- * @hidden
80
- * @type {string}
81
- * @memberof ISdkErrorConfig
82
- */
83
- position?: POSITIONS;
84
- }
85
- /**
86
- * @detail Options
87
- *
88
- *
89
- * @export
90
- * @interface IRtmConfig
91
- */
92
- export interface IRtmConfig {
93
- /**
94
- * sdp接口请求超时等待时间, 单位 ms
95
- * 默认值: 5000
96
- *
97
- * @type {number}
98
- * @memberof IRtmConfig
99
- */
100
- loadTimeout?: number;
101
- /**
102
- * sdp接口请求失败时重试间隔时间, 单位 ms
103
- * 默认值:1000
104
- *
105
- * @type {number}
106
- * @memberof IRtmConfig
107
- */
108
- retryDelay?: number;
109
- /**
110
- * sdp接口请求失败时的重试次数
111
- * 默认值:0
112
- *
113
- * @type {number}
114
- * @memberof IRtmConfig
115
- */
116
- retryCount?: number;
117
- /**
118
- * rtc播放video不会触发waiting,通过timeupdate事件模拟,两次timeupdate事件触发间隔时间大于此值时模拟waiting事件触发 , 单位 ms
119
- * 默认值:300
120
- *
121
- * @type {number}
122
- * @memberof IRtmConfig
123
- */
124
- stallInterval?: number;
125
- /**
126
- * rtc起播建联失败时降级到flv或hls播放, 指定时开启降级,不指定建联失败对外抛error
127
- * 默认值:''
128
- *
129
- * @type {string}
130
- * @memberof IRtmConfig
131
- */
132
- backupURL?: string;
133
- /**
134
- * 降级到flv或者hls时需要的播放插件, 配合 backupURL使用
135
- * 默认值:null
136
- *
137
- * @type {('hls' | 'flv')}
138
- * @memberof IRtmConfig
139
- */
140
- backupStreamType: "hls" | "flv";
141
- }
142
- /**
143
- * @detail Options
144
- * @brief 弹幕相关设置
145
- *
146
- * @export
147
- * @interface InitConfig
148
- */
149
- export interface InitConfig {
150
- /**
151
- * 透明度, 枚举值[0, 33, 66, 99], 实际对应0, 0.33, 0.66, 1
152
- * 默认:99
153
- *
154
- * @type {number}
155
- * @memberof InitConfig
156
- */
157
- opacity?: number;
158
- /**
159
- * 枚举值[0, 33, 66, 99] 实际对应1/4, 1/2, 3/4, 1
160
- * 默认:99
161
- *
162
- * @type {number}
163
- * @memberof InitConfig
164
- */
165
- area?: number;
166
- /**
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
172
- */
173
- speed?: number;
174
- /**
175
- * 字体大小, 枚举值[0, 50, 100],实际对应14px 16px 20px
176
- * 默认:50
177
- *
178
- * @type {number}
179
- * @memberof InitConfig
180
- */
181
- fontSize?: number;
182
- /**
183
- * 是否打开面板
184
- * 默认:false
185
- *
186
- * @type {boolean}
187
- * @memberof InitConfig
188
- */
189
- active?: boolean;
190
- /**
191
- * 是否展示弹幕设置面板
192
- * 默认: true
193
- *
194
- * @type {boolean}
195
- * @memberof InitConfig
196
- */
197
- usePanel?: boolean;
198
- /**
199
- * 弹幕列表
200
- *
201
- * @type {DanmuItem[]}
202
- * @memberof InitConfig
203
- */
204
- danmuItems?: DanmuItem[];
205
- /**
206
- * @hidden
207
- *
208
- * @type {ExternalItem[]}
209
- * @memberof InitConfig
210
- */
211
- external?: ExternalItem[];
212
- /**
213
- * @hidden
214
- *
215
- * @type {IMaskConfig}
216
- * @memberof InitConfig
217
- */
218
- maskConfig?: IMaskConfig;
219
- /**
220
- * @hidden
221
- *
222
- * @type {boolean}
223
- * @memberof InitConfig
224
- */
225
- maskActive?: boolean;
226
- }
227
- export interface IMaskConfig {
228
- maskUrl: string;
229
- maskOffset?: number;
230
- interval?: number;
231
- }
232
- export interface Lang {
233
- zh: string;
234
- en: string;
235
- [props: string]: string;
236
- }
237
- /**
238
- * @detail Options
239
- *
240
- *
241
- * @export
242
- * @interface DanmuItem
243
- */
244
- export interface DanmuItem {
245
- /**
246
- * 弹幕唯一id
247
- *
248
- * @type {string}
249
- * @memberof DanmuItem
250
- */
251
- id: string;
252
- /**
253
- * 弹幕文案
254
- *
255
- * @type {string}
256
- * @memberof DanmuItem
257
- */
258
- txt: string;
259
- /**
260
- * 弹幕出现时间, 单位为ms
261
- *
262
- * @type {number}
263
- * @memberof DanmuItem
264
- */
265
- start?: number;
266
- /**
267
- * 是否优先显示
268
- * @hidden
269
- * @type {boolean}
270
- * @memberof DanmuItem
271
- */
272
- prior?: boolean;
273
- /**
274
- * 弹幕持续显示时间, 单位为ms
275
- *
276
- * @type {number}
277
- * @memberof DanmuItem
278
- */
279
- duration?: number;
280
- /**
281
- * 弹幕样式
282
- * style : {
283
- * color: '#ff9500',
284
- * fontSize: '20px',
285
- * padding: '2px 11px'
286
- * }
287
- *
288
- * @type {Partial<Record<Property, string>>}
289
- * @memberof DanmuItem
290
- */
291
- style?: Partial<Record<Property, string>>;
292
- }
293
- export interface ExternalItem {
294
- key: string;
295
- name: string;
296
- value: boolean;
297
- lang?: Lang;
298
- }
299
- /**
300
- * @detail Options
301
- *
302
- * @export
303
- * @interface ISubtitleConfig
304
- */
305
- export interface ISubtitleConfig {
306
- /**
307
- *
308
- * @hidden
309
- */
310
- [propName: string]: any;
311
- /**
312
- * 图标位置
313
- * 默认值:controlsRight
314
- * @type {string}
315
- * @memberof ISubtitleConfig
316
- */
317
- position?: string;
318
- /**
319
- * 图标排列权重
320
- * 默认值:6
321
- * @type {number}
322
- * @memberof ISubtitleConfig
323
- */
324
- index?: number;
325
- /**
326
- * 字幕列表
327
- * 默认值:无
328
- * @type {Array<SubTitleItem>}
329
- * @memberof ISubtitleConfig
330
- */
331
- list?: Array<ISubTitleItem>;
332
- /**
333
- * 是否默认打开
334
- * 默认值:true
335
- * @type {boolean}
336
- * @memberof ISubtitleConfig
337
- */
338
- isDefaultOpen?: boolean;
339
- /**
340
- * 是否显示图标
341
- * 默认值:true
342
- * @type {boolean}
343
- * @memberof ISubtitleConfig
344
- */
345
- isShowIcon?: boolean;
346
- /**
347
- * 字幕渲染模式,外挂字幕或原生字幕
348
- * 默认值:external
349
- * @type {string}
350
- * @memberof ISubtitleConfig
351
- */
352
- mode?: "external" | "native";
353
- /**
354
- * 字幕更新模式,默认vod
355
- * 默认值:vod
356
- * @type {string}
357
- * @memberof ISubtitleConfig
358
- */
359
- updateMode?: "vod" | "live";
360
- /**
361
- * 字幕样式
362
- * 默认值:无
363
- * @type {ISubtitleStyle}
364
- * @memberof ISubtitleConfig
365
- */
366
- style?: ISubtitleStyle;
367
- }
368
- /**
369
- * @detail Options
370
- *
371
- * @export
372
- * @interface ISubtitleStyle
373
- */
374
- export interface ISubtitleStyle {
375
- /**
376
- * 是否跟随控制栏调整位置
377
- * 默认值:true
378
- * @type {boolean | null}
379
- * @memberof ISubtitleStyle
380
- */
381
- follow: boolean | null;
382
- /**
383
- * 字体显示模式,默认是描边
384
- * 默认值:'stroke'
385
- * @type {'stroke' | 'bg'}
386
- * @memberof ISubtitleStyle
387
- */
388
- mode?: "stroke" | "bg";
389
- /**
390
- * 跟随底部控制栏的高度
391
- * 默认值:50
392
- * @type {number}
393
- * @memberof ISubtitleStyle
394
- */
395
- followBottom?: number;
396
- /**
397
- * 是否跟随视频自动调整字号
398
- * 默认值:true
399
- * @type {boolean}
400
- * @memberof ISubtitleStyle
401
- */
402
- fitVideo?: boolean;
403
- /**
404
- * 字幕距离画面底部百分比
405
- * 默认值:4
406
- * @type {number}
407
- * @memberof ISubtitleStyle
408
- */
409
- offsetBottom?: number;
410
- /**
411
- * 横屏视频适配基准字号
412
- * 默认值:49
413
- * @type {number}
414
- * @memberof ISubtitleStyle
415
- */
416
- baseSizeX?: number;
417
- /**
418
- * 竖屏视频适配基准字号
419
- * 默认值:28
420
- * @type {number}
421
- * @memberof ISubtitleStyle
422
- */
423
- baseSizeY?: number;
424
- /**
425
- * pc端最小字号
426
- * 默认值:16
427
- * @type {number}
428
- * @memberof ISubtitleStyle
429
- */
430
- minSize?: number;
431
- /**
432
- * 移动端最小字号
433
- * 默认值:13
434
- * @type {number}
435
- * @memberof ISubtitleStyle
436
- */
437
- minMobileSize?: number;
438
- /**
439
- * 最大显示行数
440
- * 默认值:'double'
441
- * @type {'double' | 'single' | 'three'}
442
- * @memberof ISubtitleStyle
443
- */
444
- line?: "double" | "single" | "three";
445
- /**
446
- * 字体颜色, 16位颜色值或rgb值
447
- * 默认值:'#fff'
448
- * @type {string}
449
- * @memberof ISubtitleStyle
450
- */
451
- fontColor?: string;
452
- }
453
- /**
454
- * @detail Options
455
- *
456
- * @export
457
- * @interface ISubTitleItem
458
- */
459
- export interface ISubTitleItem {
460
- /**
461
- * 字幕语言
462
- * 默认值:无
463
- * @type {string | number}
464
- * @memberof ISubTitleItem
465
- */
466
- language?: string | number;
467
- /**
468
- * 字幕id
469
- * 默认值:无
470
- * @type {string | number}
471
- * @memberof ISubTitleItem
472
- */
473
- id?: number | string;
474
- /**
475
- * 是否是默认选择的字幕
476
- * 默认值:false
477
- * @type {boolean}
478
- * @memberof ISubTitleItem
479
- */
480
- isDefault?: boolean;
481
- /**
482
- * 字幕名称
483
- * 默认值:无
484
- * @type {any}
485
- * @memberof ISubTitleItem
486
- */
487
- text?: any;
488
- /**
489
- * 外挂字幕地址
490
- * 默认值:false
491
- * @type {string}
492
- * @memberof ISubTitleItem
493
- */
494
- url?: string;
495
- /**
496
- * stringContent
497
- * 默认值:无
498
- * @hidden
499
- * @type {string}
500
- * @memberof ISubTitleItem
501
- */
502
- stringContent?: string;
503
- /**
504
- * 字幕内容列表,非url形式时使用
505
- * 默认值:无
506
- * @type {Array<Object>}
507
- * @memberof ISubTitleItem
508
- */
509
- list?: IListItem[];
510
- }
511
- /**
512
- * @detail Options
513
- *
514
- * @export
515
- * @interface IListItem
516
- */
517
- export interface IListItem {
518
- /**
519
- * 开始时间
520
- * @type {number}
521
- */
522
- start: number;
523
- /**
524
- * 结束时间
525
- * @type {number}
526
- */
527
- end: number;
528
- /**
529
- * 字幕数据列表
530
- * @type {Array<ITextItem>}
531
- */
532
- list: Array<ITextItem>;
533
- /**
534
- * 默认值:无
535
- * @hidden
536
- * @type {any}
537
- */
538
- [propName: string]: any;
539
- }
540
- /**
541
- * @detail Options
542
- *
543
- * @export
544
- * @interface ITextItem
545
- */
546
- export interface ITextItem {
547
- /**
548
- * 默认值:无
549
- * @hidden
550
- * @type {any}
551
- */
552
- [propName: string]: any;
553
- /**
554
- * 开始时间
555
- * @type {number}
556
- */
557
- start: number;
558
- /**
559
- * 结束时间
560
- * @type {number}
561
- */
562
- end: number;
563
- /**
564
- * 字幕文案数组
565
- * @type {string[]}
566
- */
567
- text: string[];
568
- /**
569
- * 字幕顺序
570
- * @type {number}
571
- */
572
- index?: number;
573
- }
574
- /**
575
- * @detail Options
576
- *
577
- *
578
- * @export
579
- * @interface IDefinitionDemotePlugin
580
- */
581
- export interface IDefinitionDemotePlugin {
582
- /**
583
- * 超时重试次数
584
- * 默认:3
585
- *
586
- * @type {number}
587
- * @memberof IDefinitionDemotePlugin
588
- */
589
- oftenWaitingCount?: number;
590
- /**
591
- * 设置经常超时时间
592
- * 默认:5000
593
- *
594
- * @type {number}
595
- * @memberof IDefinitionDemotePlugin
596
- */
597
- oftenWaitingTime?: number;
598
- /**
599
- * 设置超时时间
600
- * 默认5000
601
- *
602
- * @type {number}
603
- * @memberof IDefinitionDemotePlugin
604
- */
605
- longWaitingTime?: number;
606
- /**
607
- * 是否自动触发降级
608
- * 默认:false
609
- *
610
- * @type {boolean}
611
- * @memberof IDefinitionDemotePlugin
612
- */
613
- isNeedAutoDemote?: boolean;
614
- /**
615
- *
616
- * 降级顺序,按照数组顺序依次降级,数字元素对应playList中的definition
617
- * 默认: ['uhd', 'hd', 'sd', 'ld', 'ao']
618
- *
619
- * @type {string[]}
620
- * @memberof IDefinitionDemotePlugin
621
- */
622
- demotePriority?: string[];
623
- }
624
- /**
625
- * @detail Options
626
- * @brief 更多options
627
- * @id 2
628
- *
629
-
630
- /**
631
- * dash播放配置想
632
- *
633
- * @detail Options
634
- * @export
635
- * @interface IDashPluginConfig
636
- */
637
- export interface IDashPluginConfig {
638
- /**
639
- * 视频vid
640
- * 默认:无
641
- * 播放加密视频时必选
642
- */
643
- vid?: string;
644
- /**
645
- * 播放类型
646
- * 默认:`TOP`
647
- * 非必选
648
- */
649
- playInfoType: "TOP";
650
- /**
651
- * 清晰度映射文案
652
- * 默认:无
653
- * 非必选
654
- * @example
655
- * ``` javascript
656
- * { 360p: "流畅 360p",
657
- * 480p: "清晰 480p",
658
- * 720p: "高清 720p",
659
- * 1080p: "超高清 1080p"
660
- * }
661
- * ```
662
- */
663
- definitionText: Record<string, string>;
664
- /**
665
- * 默认清晰度
666
- * 默认:列表第一个
667
- * 非必选
668
- * @example
669
- * ``` javascript
670
- * { 360p: "流畅 360p",
671
- * 480p: "清晰 480p",
672
- * 720p: "高清 720p",
673
- * 1080p: "超高清 1080p"
674
- * }
675
- * ```
676
- */
677
- defaultDefinition?: string;
678
- /**
679
- * 获取证书地址
680
- * 默认:`//i.snssdk.com/video/drm/v1/play_licenses`
681
- * 播放加密视频时必选
682
- */
683
- getLicenseUrl?: string;
684
- /**
685
- * dash播放信息,由`Service.url`服务接口获取
686
- * 默认:无
687
- * 必选
688
- */
689
- dashOpts?: {
690
- Data: any;
691
- };
692
- /**
693
- * 兜底的mp4播放列表,由`Service.url`服务接口获取
694
- * 默认:无
695
- * 非必选
696
- */
697
- mp4Opts: {
698
- mp4List: mp4OptsItem[];
699
- };
700
- /**
701
- * 预加载时间,单位ms
702
- * 默认:undefined
703
- * 非必选
704
- */
705
- preloadTime?: number;
706
- /**
707
- * @hidden
708
- * 自适应配置项
709
- * 默认:undefined
710
- * 非必选
711
- */
712
- autoBitrateOpts?: any;
713
- /**
714
- * @hidden
715
- * 备用地址降级,默认情况下,当dash播放出问题后,会降级为mp4播放;
716
- * 设置改参数后,会优先使用备用地址进行dash的降级播放,再次出错时,会降级为mp4播放
717
- * 默认:false
718
- * 非必选
719
- */
720
- useBackUrl?: boolean;
721
- /**
722
- * @hidden
723
- * 优化首帧
724
- * 是针对域名,将range参数放在url后面,避免OPTIONS请求,从而优化首帧
725
- * 默认:无
726
- * 非必选
727
- */
728
- url_range_domains?: string[];
729
- }
730
- /**
731
- * dash播放的mp4兜底播放列表配置
732
- *
733
- * @detail Options
734
- * @export
735
- * @interface mp4OptsItem
736
- */
737
- export interface mp4OptsItem {
738
- /**
739
- * 清晰度
740
- * 默认: 无
741
- * 必传
742
- */
743
- definition: string;
744
- /**
745
- * mp4地址
746
- * 默认: 无
747
- * 必传
748
- */
749
- url: string;
750
- }
751
- /**
752
- * DASH播放配置
753
- *
754
- * @detail Options
755
- * @export
756
- * @interface IDashPluginConfig
757
- */
758
- export interface IEncryptHlsPluginConfig {
759
- /**
760
- * 播放地址请求域名
761
- * 默认:无
762
- * 必选
763
- */
764
- playDomain: string;
765
- /**
766
- * 请求类型,固定值 'TOP'
767
- * 默认: 无
768
- */
769
- getKeyType: string;
770
- /**
771
- * 密钥请求域名
772
- * 默认:无
773
- * 必选
774
- */
775
- keyDomain: string;
776
- /**
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
- * 必选
780
- */
781
- playAuthToken: string;
782
- /**
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
- * 必选
786
- */
787
- keyToken: string;
788
- /**
789
- * hls加密播放地址
790
- * 默认:无
791
- */
792
- url?: string;
793
- }
794
- /**
795
- * 质量日志配置
796
- *
797
- * @detail Options
798
- * @export
799
- * @interface IVodLogOptsConfig
800
- */
801
- export interface IVodLogOptsConfig {
802
- /**
803
- * 表示业务来源,使用业务自己的appid即可
804
- * 默认:无
805
- * 必选
806
- */
807
- line_app_id: number;
808
- /**
809
- * 用于识别单一用户的id
810
- * 默认:无
811
- * 必选
812
- */
813
- line_user_id: string | number;
814
- /**
815
- * 视频类型
816
- * 默认:无
817
- * 必选
818
- */
819
- vtype?: "MP4" | "HLS" | "DASH" | "FLV";
820
- /**
821
- * 自定义标签,对应控制台"业务维类型"维度
822
- * 默认:`default`
823
- * 必选
824
- */
825
- tag?: string;
826
- /**
827
- * 自定义子标签,对应控制台"自定义标签"维度
828
- * 默认:`default`
829
- * 必选
830
- */
831
- subtag?: string;
832
- /**
833
- * 视频解码器类型名称
834
- * 默认:`h264`
835
- * 必选
836
- */
837
- codec_type?: "h264" | "h265";
838
- /**
839
- * 是否加密,0:非drm视频,1:drm视频
840
- * 默认:`0`
841
- * 可选
842
- */
843
- drm_type?: 0 | 1;
844
- /**
845
- * 播放内核版本号
846
- * 默认:无
847
- * 可选
848
- */
849
- playerCoreVersion?: string;
850
- /**
851
- * 播放器版本号
852
- * 默认:无
853
- * 可选
854
- */
855
- playerVersion?: string;
856
- /**
857
- * DASH播放的封装类型
858
- * 默认:无
859
- * 可选
860
- */
861
- dynamic_type?: "segment_base" | "segment_template";
862
- /**
863
- * 是否使用bash,0:不使用,1:使用
864
- * 默认:`0`
865
- * 可选
866
- */
867
- enable_bash?: 0 | 1;
868
- /**
869
- * 发送的埋点日志是本地缓存的时候回调
870
- * 默认:无
871
- * 可选
872
- */
873
- sendLocalCallback?: (event: any, data: any) => void;
874
- /**
875
- * 是否禁用localStorage暂时缓存onPlay逻辑
876
- * 默认:`false`
877
- * 可选
878
- */
879
- disableLocalCache?: boolean;
880
- /**
881
- * 数据上报渠道,可选值:cn(国内)、va(美东) 、sg(新加坡)
882
- * 默认:`cn`
883
- * 可选
884
- */
885
- channel?: "cn" | "va" | "sg";
886
- /**
887
- * 是否关闭清晰度切换埋点
888
- * 默认:`false`
889
- * 可选
890
- */
891
- closeResolutionLog?: boolean;
892
- /**
893
- * 关闭seek相关埋点
894
- * 默认:`false`
895
- * 可选
896
- */
897
- closeSeekLog?: boolean;
898
- /**
899
- * 队列超过多少条日志的时候发送
900
- * 默认:`5`
901
- * 可选
902
- */
903
- maxQueueCount?: number;
904
- }
905
- /**
906
- * mp4加密日志配置项
907
- *
908
- * @detail Options
909
- * @export
910
- * @interface IMp4EncryptPlayerConfig
911
- */
912
- export interface IMp4EncryptPlayerConfig {
913
- /**
914
- * 是否加密
915
- * 默认:`false`
916
- * 可选
917
- */
918
- isEncrypt?: boolean;
919
- /**
920
- * 视频vid
921
- * 默认:无
922
- * 可选
923
- */
924
- vid?: string;
925
- /**
926
- * 视频密钥 id
927
- * 默认:无
928
- * 可选
929
- */
930
- kid?: string;
931
- /**
932
- * 获取密钥凭证地址
933
- * 默认:无
934
- * 可选
935
- */
936
- getLicenseUrl?: string;
937
- /**
938
- * 是否使用EME
939
- * 默认:`false`
940
- * 可选
941
- */
942
- useEME?: boolean;
943
- /**
944
- * 视频密钥值
945
- * 默认:无
946
- * 可选
947
- */
948
- keyValue?: string;
949
- /**
950
- * 加密后的视频密钥值
951
- * 默认:无
952
- * 可选
953
- */
954
- secretKey?: string;
955
- /**
956
- * 是否携带cookie
957
- */
958
- withCredentials?: boolean;
959
- /**
960
- * drm内容
961
- * 默认:无
962
- * 可选
963
- */
964
- drm?: {
965
- clearKeys: {
966
- [propName: string]: string;
967
- };
968
- };
969
- }
970
- export declare type IDefinition = {
971
- [propName: string]: any;
972
- url: any;
973
- definition: any;
974
- bitrate?: number;
975
- bandwidth?: number;
976
- text?: string | {
977
- [propName: string]: any;
978
- };
979
- iconText?: string | {
980
- [propName: string]: any;
981
- };
982
- };
983
- export declare type IPlayerOptions = {
984
- [propName: string]: any;
985
- id?: string;
986
- el?: HTMLElement;
987
- url?: any;
988
- domEventType?: "default" | "touch" | "mouse";
989
- nullUrlStart?: boolean;
990
- width?: number | string;
991
- height?: number | string;
992
- fluid?: boolean;
993
- fitVideoSize?: "fixWidth" | "fixHeight" | "fixed";
994
- videoFillMode?: "auto" | "fillHeight" | "fillWidth" | "fill" | "cover";
995
- volume?: number | {
996
- [propName: string]: any;
997
- };
998
- autoplay?: boolean;
999
- autoplayMuted?: boolean;
1000
- loop?: boolean;
1001
- isLive?: boolean;
1002
- zoom?: number;
1003
- videoInit?: boolean;
1004
- poster?: string | {
1005
- [propName: string]: any;
1006
- };
1007
- isMobileSimulateMode?: "mobile" | "pc";
1008
- defaultPlaybackRate?: number;
1009
- execBeforePluginsCall?: () => any;
1010
- allowSeekAfterEnded?: boolean;
1011
- enableContextmenu?: boolean;
1012
- closeVideoClick?: boolean;
1013
- closeVideoDblclick?: boolean;
1014
- closePlayerBlur?: boolean;
1015
- closeDelayBlur?: boolean;
1016
- leavePlayerTime?: number;
1017
- closePlayVideoFocus?: boolean;
1018
- closePauseVideoFocus?: boolean;
1019
- closeFocusVideoFocus?: boolean;
1020
- closeControlsBlur?: boolean;
1021
- topBarAutoHide?: boolean;
1022
- videoAttributes?: {
1023
- [propName: string]: any;
1024
- };
1025
- startTime?: number;
1026
- seekedStatus?: "play" | "pause" | "auto";
1027
- miniprogress?: boolean;
1028
- disableSwipeHandler?: () => any;
1029
- enableSwipeHandler?: () => any;
1030
- ignores?: Array<"cssfullscreen" | "screenshot" | "pip" | "miniscreen" | "keyboard" | "download" | "playbackrate" | "time" | "definition" | "error" | "fullscreen" | "loading" | "mobile" | "pc" | "play" | "poster" | "progress" | "replay" | "start" | "volume" | string>;
1031
- inactive?: number;
1032
- lang?: string;
1033
- controls?: boolean | {
1034
- [propName: string]: any;
1035
- };
1036
- marginControls?: boolean;
1037
- fullscreenTarget?: HTMLElement;
1038
- screenShot?: boolean | {
1039
- [propName: string]: any;
1040
- };
1041
- rotate?: boolean | {
1042
- [propName: string]: any;
1043
- };
1044
- pip?: boolean | {
1045
- [propName: string]: any;
1046
- };
1047
- download?: boolean | {
1048
- [propName: string]: any;
1049
- };
1050
- mini?: boolean | {
1051
- [propName: string]: any;
1052
- };
1053
- cssFullscreen?: boolean | {
1054
- [propName: string]: any;
1055
- };
1056
- keyShortcut?: boolean;
1057
- presets?: any[];
1058
- plugins?: any[];
1059
- playbackRate?: number | number[] | {
1060
- [propName: string]: any;
1061
- };
1062
- definition?: {
1063
- [propName: string]: any;
1064
- list: Array<IDefinition>;
1065
- defaultDefinition?: IDefinition["definition"];
1066
- };
1067
- playsinline?: boolean;
1068
- customDuration?: number;
1069
- timeOffset?: number;
1070
- icons?: {
1071
- [propName: string]: string | HTMLElement | (() => HTMLElement | string);
1072
- };
1073
- i18n?: Array<any>;
1074
- tabindex?: number;
1075
- thumbnail?: {
1076
- urls: Array<string>;
1077
- pic_num: number;
1078
- col: number;
1079
- row: number;
1080
- height?: number;
1081
- width?: number;
1082
- };
1083
- videoConfig?: {
1084
- [propName: string]: any;
1085
- };
1086
- commonStyle?: {
1087
- progressColor?: string;
1088
- playedColor?: string;
1089
- cachedColor?: string;
1090
- sliderBtnStyle?: {
1091
- [propName: string]: any;
1092
- };
1093
- volumeColor?: string;
1094
- };
1095
- };
1096
- export interface IAutoplayPluginConfig {
1097
- position?: string;
1098
- enableDegradeMuteAutoplay?: boolean;
1099
- enableWxJsBridgeAutoplay?: boolean;
1100
- userActionDom?: Node;
1101
- enableUserActionAutoplay?: boolean;
1102
- }
1103
- declare class PlayList {
1104
- private config;
1105
- private parent;
1106
- private root;
1107
- private modal;
1108
- private _delegates;
1109
- private attrKeys;
1110
- constructor(args: any);
1111
- renderItemList(dataList?: any[]): void;
1112
- onItemClick(e: any): boolean;
1113
- getAttrObj(dom: HTMLElement, keys: string[]): {
1114
- index?: number;
1115
- } & Record<string, any>;
1116
- show(): void;
1117
- hide(): void;
1118
- modalClick(e: any): void;
1119
- setStyle(style: any): void;
1120
- destroy(): void;
1121
- }
1122
- export declare const enum TOGGLE_MODES {
1123
- CLICK = "click",
1124
- HOVER = "hover"
1125
- }
1126
- export interface IPlayListItem {
1127
- url?: string;
1128
- playAuthToken?: string;
1129
- vid: string;
1130
- poster?: string;
1131
- title?: string;
1132
- }
1133
- declare enum EPlayMode {
1134
- ORDER = "order",
1135
- LOOP = "loop"
1136
- }
1137
- export interface IPlayListConfig {
1138
- position?: string;
1139
- index?: number;
1140
- list: IPlayListItem[];
1141
- mode?: EPlayMode;
1142
- defaultIndex?: number;
1143
- isItemClickHide?: boolean;
1144
- toggleMode?: TOGGLE_MODES;
1145
- isShowIcon?: boolean;
1146
- }
1147
- export declare class PlayListPlugin extends Plugin {
1148
- isIcons: boolean;
1149
- isActive: boolean;
1150
- curInfo: any;
1151
- private nextIndex;
1152
- private prevIndex;
1153
- curIndex: number;
1154
- optionsList: OptionList;
1155
- private activeEvent;
1156
- private list;
1157
- private _disable;
1158
- private halfPass;
1159
- private mode;
1160
- private timer;
1161
- static get pluginName(): string;
1162
- static get defaultConfig(): IPlayListConfig;
1163
- beforeCreate(args: any): void;
1164
- afterCreate(): void;
1165
- registerLanguageTexts(): {
1166
- playNext: {
1167
- jp: string;
1168
- en: string;
1169
- zh: string;
1170
- "zh-hk": string;
1171
- };
1172
- playList: {
1173
- jp: string;
1174
- en: string;
1175
- zh: string;
1176
- "zh-hk": string;
1177
- };
1178
- };
1179
- registerIcons(): {
1180
- [x: string]: {
1181
- icon: any;
1182
- class: string;
1183
- };
1184
- };
1185
- private initIcons;
1186
- show(): void;
1187
- hide(): void;
1188
- private onEnter;
1189
- private switchActiveState;
1190
- /**
1191
- * @brief 播放上一个
1192
- */
1193
- prev(): void;
1194
- /**
1195
- * @brief 播放下一个
1196
- */
1197
- next(): void;
1198
- private handleNext;
1199
- /**
1200
- * @breief 更换播放列表
1201
- * @param { IPlayListItem[] } list 添加的播放列表
1202
- */
1203
- changeList(list: IPlayListItem[]): void;
1204
- /**
1205
- * @brief 设置播放序号
1206
- * @param { number } index 目标序号
1207
- */
1208
- setIndex(index: number): void;
1209
- private change;
1210
- _onTimeUpdate: () => void;
1211
- private confirmOrder;
1212
- private _nextCompute;
1213
- private _prevCompute;
1214
- private _onEnded;
1215
- private _emitChange;
1216
- private onLeave;
1217
- toggle(isActive: boolean): void;
1218
- private onItemClick;
1219
- private renderItemList;
1220
- private _resizeList;
1221
- destroy(): void;
1222
- set disable(val: boolean);
1223
- get disable(): boolean;
1224
- render(): string;
1225
- }
1226
- export interface IPlayInfoList {
1227
- BackupPlayUrl: string;
1228
- BackupUrlExpire: string;
1229
- BarrageMaskOffset: string;
1230
- Bitrate: number;
1231
- CheckInfo: string;
1232
- Codec: string;
1233
- Definition: string;
1234
- Duration: number;
1235
- FileId: string;
1236
- FileType: string;
1237
- Format: string;
1238
- Height: number;
1239
- IndexRange: string;
1240
- InitRange: string;
1241
- KeyFrameAlignment: string;
1242
- LogoType: string;
1243
- MainPlayUrl: string;
1244
- MainUrlExpire: string;
1245
- Md5: string;
1246
- PlayAuth: string;
1247
- PlayAuthId: string;
1248
- Quality: string;
1249
- Size: number;
1250
- Volume?: number;
1251
- Width: number;
1252
- }
1253
- declare enum CodecType {
1254
- H265 = "h265",
1255
- H264 = "h264",
1256
- UNKNOWN = "unknown"
1257
- }
1258
- declare enum RTMCodec {
1259
- H264 = "h264"
1260
- }
1261
- export declare type TRegionType = "cn" | "mya" | "va" | "sg";
1262
- export declare type PlayModeType = "order" | "sloop" | "loop" | "random";
1263
- export interface IMusicListItem {
1264
- /**
1265
- * 音乐地址
1266
- *
1267
- * @type {string}
1268
- * @memberof IMusicListItem
1269
- */
1270
- src: string;
1271
- /**
1272
- * 音乐唯一vid
1273
- *
1274
- * @type {string | number}
1275
- * @memberof IMusicListItem
1276
- */
1277
- vid: string | number;
1278
- /**
1279
- * 音乐封面
1280
- *
1281
- * @type {string}
1282
- * @memberof IMusicListItem
1283
- */
1284
- poster?: string;
1285
- /**
1286
- * 音乐标题
1287
- *
1288
- * @type {string}
1289
- * @memberof IMusicListItem
1290
- */
1291
- title?: string;
1292
- [propName: string]: any;
1293
- }
1294
- export interface IABCycle {
1295
- /**
1296
- * AB循环段开始时间
1297
- *
1298
- * @type {boolean}
1299
- * @memberof IABCycle
1300
- */
1301
- start: number;
1302
- /**
1303
- * AB循环段结束时间
1304
- *
1305
- * @type {boolean}
1306
- * @memberof IABCycle
1307
- */
1308
- end: number;
1309
- /**
1310
- * AB段是否循环播放
1311
- *
1312
- * @type {boolean}
1313
- * @memberof IABCycle
1314
- */
1315
- loop?: boolean;
1316
- [propName: string]: any;
1317
- }
1318
- export interface IMusicConfig {
1319
- /**
1320
- * 是否启用离线下载播放
1321
- *
1322
- * @type {boolean}
1323
- * @memberof IMusicConfig
1324
- */
1325
- offline?: boolean;
1326
- /**
1327
- * AB循环设置
1328
- *
1329
- * @type {IABCycle}
1330
- * @memberof IMusicConfig
1331
- */
1332
- abCycle?: IABCycle | null;
1333
- /**
1334
- * 快进快退时间跨度
1335
- *
1336
- * @type {number}
1337
- * @memberof IMusicConfig
1338
- */
1339
- timeScale?: number;
1340
- /**
1341
- * 循环模式
1342
- *
1343
- * @type {('order' | 'sloop' | 'loop' | 'random')}
1344
- * @memberof IMusicConfig
1345
- */
1346
- mode?: PlayModeType;
1347
- /**
1348
- * 播放列表
1349
- *
1350
- * @type {Array<IMusicListItem>}
1351
- * @memberof IMusicConfig
1352
- */
1353
- list?: Array<IMusicListItem>;
1354
- [propName: string]: any;
1355
- }
1356
- /**
1357
- * @detail Options
1358
- * @brief 播放地址列表, 可配置多线路和多清晰度
1359
- *
1360
- * @export
1361
- * @interface Stream
1362
- */
1363
- export interface Stream extends Partial<IPlayInfoList> {
1364
- /**
1365
- * url类型,可以选值为“rtm”/“flv”/“mp4”/“hls”
1366
- *
1367
- * @type {('rtm' | 'flv' | 'mp4' | 'hls')}
1368
- * @memberof IPlayerConfig
1369
- */
1370
- streamType?: string;
1371
- /**
1372
- * 播放地址
1373
- *
1374
- * @type {string}
1375
- * @memberof IPlayerConfig
1376
- */
1377
- url: string;
1378
- /**
1379
- * 清晰度key
1380
- *
1381
- * @type {string}
1382
- * @memberof Stream
1383
- */
1384
- definition?: string;
1385
- /**
1386
- * 多语言词典中对应的key, 比如 definitionTextKey: HD_TEXT_KEY
1387
- *
1388
- * languages: {
1389
- * zh: {
1390
- * HD_TEXT_KEY: '高清'
1391
- * }
1392
- * }
1393
- *
1394
- * 则清晰度切换选项显示“高清”, 不设置则显示definition的值
1395
- *
1396
- * @type {string}
1397
- * @memberof Stream
1398
- */
1399
- definitionTextKey?: string;
1400
- /**
1401
- * 编码格式
1402
- *
1403
- * @type {('h265' | 'h264')}
1404
- * @memberof Stream
1405
- */
1406
- codec?: CodecType;
1407
- /**
1408
- * 线路唯一id
1409
- *
1410
- * @type {(number | string)}
1411
- * @memberof Stream
1412
- */
1413
- lineId?: number | string;
1414
- /**
1415
- * 多语言词典中对应的key, 比如 lineTextKey: LINE_ONE
1416
- *
1417
- * languages: {
1418
- * zh: {
1419
- * LINE_ONE: '线路一'
1420
- * }
1421
- * }
1422
- *
1423
- * 则线路切换选项中显示“线路一”
1424
- *
1425
- * @type {string}
1426
- * @memberof Stream
1427
- */
1428
- lineTextKey?: string;
1429
- [propName: string]: any;
1430
- }
1431
- export interface Condition {
1432
- definition?: string;
1433
- lineId?: number | string;
1434
- [propName: string]: any;
1435
- }
1436
- /**
1437
- * @description 播放器当前状态
1438
- */
1439
- export interface Current {
1440
- definition: string;
1441
- streamType: string;
1442
- language: string;
1443
- lineId?: number | string;
1444
- codec?: CodecType;
1445
- [propName: string]: any;
1446
- }
1447
- /**
1448
- * @detail Options
1449
- * @id 1
1450
- * @brief options参数列表:
1451
- * 本文档是介绍火山引擎直播和点播播放器VePlayer的相关参数和Api。
1452
- */
1453
- export interface IPlayerConfig extends IPlayerOptions {
1454
- /**
1455
- * 是否是直播,默认为false
1456
- * @type {boolean}
1457
- * @memberof IPlayerConfig
1458
- */
1459
- isLive?: boolean;
1460
- /**
1461
- * 播放器容器id,VePlayer将被插入在该容器中
1462
- *
1463
- * @notes id和root必填一个
1464
- * @type {string}
1465
- * @memberof IPlayerConfig
1466
- */
1467
- id?: string;
1468
- /**
1469
- * 播放器容器,VePlayer将被插入在该容器中
1470
- *
1471
- * @type {HTMLElement}
1472
- * @memberof IPlayerConfig
1473
- */
1474
- root?: HTMLElement;
1475
- /**
1476
- * 播放地址
1477
- * 直播可通过 {@link https://console.volcengine.com/live/main/locationGenerate 视频直播控制台} 生成
1478
- *
1479
- * @type {string}
1480
- * @memberof IPlayerConfig
1481
- */
1482
- url?: string;
1483
- /**
1484
- * 播放地址类型,可以选值为“rtm”/“flv”/“mp4”/“hls”
1485
- * @notes 播放地址带后缀的则streamType非必填,否则为必填
1486
- *
1487
- * @type {(''mp4' | 'hls' | 'dash' | 'rtm' | 'flv')}
1488
- * @memberof IPlayerConfig
1489
- */
1490
- streamType?: "mp4" | "hls" | "dash" | "rtm" | "flv";
1491
- /**
1492
- * 是否总是显示清晰度切换控件,即只有一个清晰度时也显示清晰度切换控件
1493
- * @type {boolean}
1494
- * @memberof IPlayerConfig
1495
- */
1496
- alwaysShowDefinition?: boolean;
1497
- /**
1498
- * url对应视频的清晰度文案,仅alwaysShowDefinition为true时有效
1499
- *
1500
- * @type {string}
1501
- * @memberof IPlayerConfig
1502
- */
1503
- definitionText?: string;
1504
- /**
1505
- * url对应视频的清晰度文案的多语言key,对应参数 languages 中相对应的文案,仅alwaysShowDefinition为true时有效,优先级高于definitionText
1506
- *
1507
- * @type {string}
1508
- * @memberof IPlayerConfig
1509
- */
1510
- definitionTextKey?: string;
1511
- /**
1512
- * 视频编码方式
1513
- * 软解useSoftDecoding设置为true时,提供codec可提升软解初始效率
1514
- *
1515
- * @type {CodecType}
1516
- * @memberof IPlayerConfig
1517
- */
1518
- codec?: CodecType;
1519
- /**
1520
- * 区域,影响服务接口和日志上报
1521
- * @volcengine/veplayer默认区域为cn, @byteplus/veplayer默认区域为sg
1522
- * 火山引擎海外区域播放时请填写'sg'
1523
- *
1524
- * @type {TRegionType}
1525
- * @memberof IPlayerConfig
1526
- */
1527
- region?: TRegionType;
1528
- /**
1529
- * 多语言配置key,影响播放器文案的语言种类
1530
- * @type {'zh' | 'zh-cn' | 'en' | 'jp' | 'zh-hk'}
1531
- * @memberof IPlayerConfig
1532
- */
1533
- lang?: "zh" | "zh-cn" | "en" | "jp" | "zh-hk";
1534
- /**
1535
- * 插件加载公共路径,用于指定插件的加载路径,或者本地文件服务加载插件
1536
- *
1537
- * @type {(string)}
1538
- * @memberof IPlayerConfig
1539
- */
1540
- pluginPublicPath?: string;
1541
- /**
1542
- * 是否音乐播放器模式
1543
- *
1544
- * @type {boolean}
1545
- * @memberof IPlayerConfig
1546
- */
1547
- isMusic?: boolean;
1548
- /**
1549
- * 是否开启播放器原生控件菜单(右键触发)
1550
- * @default false 默认不开启
1551
- *
1552
- * @type {boolean}
1553
- * @memberof IPlayerConfig
1554
- */
1555
- enableContextmenu?: boolean;
1556
- /**
1557
- * 关闭video上的阻止事件传播
1558
- * @default false 默认不阻止
1559
- *
1560
- * @type {boolean}
1561
- * @memberof IPlayerConfig
1562
- */
1563
- closeVideoStopPropagation?: boolean;
1564
- /**
1565
- * 右键菜单是否可用,启用后enableContextmenu强制为false
1566
- * @default false 默认不可用
1567
- *
1568
- * @type {boolean}
1569
- * @memberof IPlayerConfig
1570
- */
1571
- enableMenu?: boolean;
1572
- /**
1573
- * 是否开启hls的MSE模式,仅移动端生效,开启后采用MSE方式播放HLS,默认在移动端使用原生video播放hls
1574
- *
1575
- * @type {boolean}
1576
- * @memberof IPlayerConfig
1577
- */
1578
- enableHlsMSE?: boolean;
1579
- /**
1580
- * 在PC Safari上是否不使用hls插件播放,默认true。true: 启用;false: 不启用
1581
- *
1582
- * @type {boolean}
1583
- * @memberof IPlayerConfig
1584
- */
1585
- useHlsPluginForSafari?: boolean;
1586
- /**
1587
- * 是否开启mp4的MSE模式,开启后采用MSE方式播放MP4,
1588
- * 同时带来精确的seek加载、视频的无缝切换、流量节省等功能
1589
- *
1590
- * @type {boolean}
1591
- * @memberof IPlayerConfig
1592
- */
1593
- enableMp4MSE?: boolean;
1594
- /**
1595
- * 播放列表
1596
- * @notes url和playList必填一个,二者都传入时, url必须在playList中。
1597
- *
1598
- * @type {Stream[]}
1599
- * @memberof IPlayerConfig
1600
- */
1601
- playList?: Stream[];
1602
- /**
1603
- * 插件,可自行选择高级插件。
1604
- * 目前支持的高级插件为: DefinitionDemotePlugin
1605
- *
1606
- * @type {any[]}
1607
- * @memberof IPlayerConfig
1608
- */
1609
- plugins?: any[];
1610
- /**
1611
- * 默认配置
1612
- * @hidden
1613
- *
1614
- * @type {IDefaultConfig}
1615
- * @memberof IPlayerConfig
1616
- */
1617
- 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
- /**
1637
- * @hidden
1638
- *
1639
- * @type {boolean}
1640
- * @memberof IPlayerConfig
1641
- */
1642
- isMobile?: boolean;
1643
- /**
1644
- * umd依赖备用地址
1645
- * 用于依赖的CDN发生网络错误时的降级备用地址
1646
- * 支持的依赖有hls(非加密hls播放)、flv(flv播放)、XGVideo(软解播放)、hlsEncrypt(加密hls播放)、dash(dash播放)、mp4Encrypt(加密np4播放)、danmujs(弹幕)、danmuMask(蒙版弹幕)、subtitle(外挂字幕)
1647
- */
1648
- umdUrlMap?: Record<string, string>;
1649
- /**
1650
- * 是否启用软解
1651
- * 默认: false
1652
- *
1653
- * @type {boolean}
1654
- * @memberof IPlayerConfig
1655
- */
1656
- useSoftDecoding?: boolean;
1657
- /**
1658
- * 是否开H265播放降级,即H.265硬解不支持时自动降级为软解
1659
- *
1660
- * @type {boolean}
1661
- * @memberof IPlayerConfig
1662
- */
1663
- enableH265Degrade?: boolean;
1664
- /**
1665
- * 资源过期时的回调函数,用来更新视频资源
1666
- *
1667
- * @type {(any) => Promise<IPlayerConfig>}
1668
- * @memberof IPlayerConfig
1669
- */
1670
- onMediaExpired?: () => Promise<IPlayerConfig>;
1671
- /**
1672
- * playAuthToken过期时的回调函数,用来更新playAuthToken
1673
- *
1674
- * @type {(any) => Promise<IPlayAuthTokenConfig>}
1675
- * @memberof IPlayerConfig
1676
- */
1677
- onTokenExpired?: () => Promise<IPlayAuthTokenConfig>;
1678
- /**
1679
- * 定期检查资源过期的周期,单位秒,默认400
1680
- *
1681
- * @type {boolean}
1682
- * @memberof IPlayerConfig
1683
- */
1684
- 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
1713
- */
1714
- enableUserActionAutoplay?: boolean;
1715
- /**
1716
- * 禁用点播日志配置检测,默认开启,如果未配置line_app_id则会播放报错
1717
- *
1718
- * @type {boolean}
1719
- * @memberof IPlayerConfig
1720
- */
1721
- disableVodLogOptsCheck?: boolean;
1722
- /**
1723
- * 播放器报错展示配置, 可以配置播放异常时的播放器显示的异常文案、图片,以及是否提供刷新按钮等
1724
- *
1725
- */
1726
- sdkErrorPlugin?: ISdkErrorConfig;
1727
- /**
1728
- * rtm配置,配置rtm拉流参数
1729
- * @notes 传入rtm流url时才生效
1730
- *
1731
- * @type {IRtmConfig}
1732
- * @memberof IPlayerConfig
1733
- */
1734
- rtm?: IRtmConfig;
1735
- /**
1736
- * 弹幕及面板配置,可配置弹幕的一些参数,如弹幕文字大小、透明度、展示区域等,
1737
- *
1738
- * @type {InitConfig | boolean}
1739
- * @memberof IPlayerConfig
1740
- */
1741
- DanmuPlugin?: InitConfig | boolean;
1742
- /**
1743
- * 清晰度自动降级配置
1744
- * @notes 需要先引入DefinitionDemotePlugin插件,plugins: [window.VePlayer.DefinitionDemotePlugin]
1745
- *
1746
- * @type {IDefinitionDemotePlugin}
1747
- * @memberof IPlayerConfig
1748
- */
1749
- DefinitionDemotePlugin?: IDefinitionDemotePlugin;
1750
- /**
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
1769
- */
1770
- DASHPlugin?: Partial<IDashPluginConfig>;
1771
- /**
1772
- * hls 加密播放配置项
1773
- * @type {Partial<IEncryptHlsPluginConfig> | boolean}
1774
- * @memberof IPlayerConfig
1775
- */
1776
- EncryptHlsPlugin?: Partial<IEncryptHlsPluginConfig> | boolean;
1777
- /**
1778
- * 质量日志配置项
1779
- * @type {Partial<IVodLogOptsConfig>}
1780
- * @memberof IPlayerConfig
1781
- */
1782
- vodLogOpts?: Partial<IVodLogOptsConfig>;
1783
- /**
1784
- * mp4加密播放配置项
1785
- * @type {Partial<IMp4EncryptPlayerConfig> | boolean}
1786
- * @memberof IPlayerConfig
1787
- */
1788
- Mp4EncryptPlayer?: Partial<IMp4EncryptPlayerConfig> | boolean;
1789
- /**
1790
- * 自适应码率配置项
1791
- * @type {IAutoBitrateOptsConfig}
1792
- * @memberof IPlayerConfig
1793
- */
1794
- autoBitrateOpts?: IAutoBitrateOptsConfig;
1795
- /**
1796
- * 外挂字幕配置项
1797
- * @type {ISubtitleConfig}
1798
- * @memberof IPlayerConfig
1799
- */
1800
- Subtitle?: ISubtitleConfig;
1801
- /**
1802
- * 记忆播放配置项
1803
- * @type {IMemoryPlayConfig}
1804
- * @memberof IPlayerConfig
1805
- */
1806
- MemoryPlay?: IMemoryPlayConfig | boolean;
1807
- /**
1808
- * 音乐播放器配置项
1809
- * @type {IMusicConfig}
1810
- * @memberof IPlayerConfig
1811
- */
1812
- music?: IMusicConfig;
1813
- /**
1814
- * 自动播放配置
1815
- * @type {IMusicConfig}
1816
- * @memberof IPlayerConfig
1817
- */
1818
- AutoplayPlugin?: IAutoplayPluginConfig;
1819
- /**
1820
- * 播放列表配置
1821
- * @type { IPlayListConfig }
1822
- * @memberof IPlayerConfig
1823
- */
1824
- playListPlugin?: IPlayListConfig;
1825
- }
1826
- /**
1827
- * 初始配置
1828
- *
1829
- * @export
1830
- * @interface IDefaultConfig
1831
- */
1832
- export interface IDefaultConfig {
1833
- /**
1834
- * “点播”还是“直播”
1835
- *
1836
- * @type {('live' | 'vod')}
1837
- * @memberof IPlayerConfig
1838
- */
1839
- type?: "live" | "vod";
1840
- /**
1841
- * 是否是直播
1842
- *
1843
- * @type {boolean}
1844
- * @memberof IPlayerConfig
1845
- */
1846
- isLive?: boolean;
1847
- /**
1848
- * 线路唯一key
1849
- *
1850
- * @type {(number | string)}
1851
- * @memberof Stream
1852
- */
1853
- lineId?: number | string;
1854
- /**
1855
- * 清晰度选择
1856
- *
1857
- * @type {string}
1858
- * @memberof Stream
1859
- */
1860
- definition?: string;
1861
- /**
1862
- * 开始播放时间
1863
- *
1864
- * @type {number}
1865
- * @memberof IDefaultConfig
1866
- */
1867
- startTime?: number;
1868
- /**
1869
- * 音量
1870
- *
1871
- * @type {number}
1872
- * @memberof IDefaultConfig
1873
- */
1874
- volume?: number;
1875
- /**
1876
- * 弹幕插件配置
1877
- *
1878
- * @type {*}
1879
- * @memberof IDefaultConfig
1880
- */
1881
- DanmuPlugin?: any;
1882
- /**
1883
- * 字幕插件配置
1884
- *
1885
- * @type {*}
1886
- * @memberof IDefaultConfig
1887
- */
1888
- LiveSubtitlesIconPlugin?: any;
1889
- }
1890
- /**
1891
- * vid播放配置信息
1892
- *
1893
- * @detail Options
1894
- * @description PlayAuthToken获取视频信息配置
1895
- * @export
1896
- * @interface IPlayAuthTokenConfig
1897
- */
1898
- export interface IPlayAuthTokenConfig {
1899
- /**
1900
- * 服务端生成的临时playAuthToken
1901
- *
1902
- * @type {string}
1903
- * @memberof IPlayAuthTokenConfig
1904
- */
1905
- playAuthToken: string;
1906
- /**
1907
- * 默认清晰度
1908
- *
1909
- * @notes 为空时默认为最大码率的清晰度
1910
- * @type {string}
1911
- * @memberof IPlayAuthTokenConfig
1912
- */
1913
- defaultDefinition?: string;
1914
- /**
1915
- * 求地址接口域名
1916
- *
1917
- * @notes 默认为`//vod.volcengineapi.com`
1918
- * @type {string}
1919
- * @memberof IPlayAuthTokenConfig
1920
- */
1921
- playDomain?: string;
1922
- /**
1923
- * 是否启用控制台设置的封面图,默认false
1924
- * @type {boolean}
1925
- * @memberof IPlayAuthTokenConfig
1926
- */
1927
- needPoster?: boolean;
1928
- /**
1929
- * 是否启用控制台设置的雪碧图,默认false
1930
- * @type {boolean}
1931
- * @memberof IPlayAuthTokenConfig
1932
- */
1933
- needThumbs?: boolean;
1934
- /**
1935
- * 是否启用控制台设置的蒙版弹幕,默认false
1936
- * @type {boolean}
1937
- * @memberof IPlayAuthTokenConfig
1938
- */
1939
- needBarrageMask?: boolean;
1940
- /**
1941
- * 是否需要多清晰度,默认为true
1942
- * @type {boolean}
1943
- * @memberof IPlayAuthTokenConfig
1944
- */
1945
- needDefinitionList?: boolean;
1946
- /**
1947
- * hls标准加密播放所用的keyToken
1948
- * @type {boolean}
1949
- * @memberof IPlayAuthTokenConfig
1950
- */
1951
- keyToken?: string;
1952
- /**
1953
- * 密钥请求域名
1954
- * @type {string}
1955
- * @memberof IPlayAuthTokenConfig
1956
- */
1957
- keyDomain?: string;
1958
- /**
1959
- * 获取key方式,默认'TOP'
1960
- * @type {string}
1961
- * @memberof IPlayAuthTokenConfig
1962
- */
1963
- getKeyType?: string;
1964
- /**
1965
- * 获取privateDrmAuthToken的异步回调,
1966
- * @type {(
1967
- * playAuthIds: string,
1968
- * vid: string,
1969
- * unionInfo: string,
1970
- * ) => Promise<string>}
1971
- * 回调入参:
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
- *
1977
- */
1978
- getDrmAuthToken?: (playAuthIds: string, vid: string, unionInfo: string) => Promise<string>;
1979
- /**
1980
- * 可携带aid等透传参数,如
1981
- * {aid: 1234},以playAuthToken下发的参数的优先级最高。
1982
- * 具体可传参数见{@link https://www.volcengine.com/docs/4/65659 签发 PlayAuthToken}
1983
- *
1984
- * @type {Record<string, number | string | boolean>}
1985
- * @memberof IPlayAuthTokenConfig
1986
- */
1987
- reqParams?: Record<string, number | string | boolean>;
1988
- /**
1989
- * 定义清晰度的映射
1990
- *
1991
- * @example 如:
1992
- * ``` javascript
1993
- * {
1994
- * '480p': '标清',
1995
- * '720p': '高清'
1996
- * }
1997
- * ```
1998
- * 或
1999
- * ``` javascript
2000
- * {
2001
- * '480p': {
2002
- * definition: 'hd', // 清晰度兜底文案
2003
- * definitionTextKey: 'HD' // 多语言文案key
2004
- * },
2005
- * '720p': {
2006
- * definition: 'uhd',
2007
- * definitionTextKey: 'UHD'
2008
- * }
2009
- * }
2010
- * ```
2011
- * `definitionTextKey`用来指定多语言的key
2012
- * @type {Record<string, string | definitionItem>}
2013
- * @memberof IPlayAuthTokenConfig
2014
- */
2015
- definitionMap?: Record<string, string | definitionItem>;
2016
- /**
2017
- * 服务502错误时重试次数,默认为1
2018
- * @type {number}
2019
- * @memberof IPlayAuthTokenConfig
2020
- */
2021
- retryCount?: number;
2022
- }
2023
- /**
2024
- * 清晰度定义
2025
- *
2026
- * @detail Options
2027
- * @export
2028
- * @interface definitionItem
2029
- */
2030
- export interface definitionItem {
2031
- /**
2032
- * 清晰度
2033
- *
2034
- * @type {string}
2035
- * @memberof definitionItem
2036
- */
2037
- definition?: string;
2038
- /**
2039
- * 清晰度多语言key
2040
- *
2041
- * @type {string}
2042
- * @memberof definitionItem
2043
- */
2044
- definitionTextKey?: string;
2045
- }
2046
- export interface IAutoBitrateOptsConfig {
2047
- /**
2048
- * 是否开启功能,默认为false
2049
- *
2050
- * @type {boolean}
2051
- * @memberof IAutoBitrateOptsConfig
2052
- */
2053
- isOpenAutoDefi?: boolean;
2054
- /**
2055
- * 自动切换清晰度对应显示文案
2056
- *
2057
- * @type {string}
2058
- * @memberof IAutoBitrateOptsConfig
2059
- */
2060
- autoDefiText?: string;
2061
- /**
2062
- * 起播是否调整到自动切换, 默认为false
2063
- *
2064
- * @type {boolean}
2065
- * @memberof IAutoBitrateOptsConfig
2066
- */
2067
- isPlayAutoDefi?: boolean;
2068
- /**
2069
- * 调用算法频率
2070
- *
2071
- * @type {boolean}
2072
- * @memberof IAutoBitrateOptsConfig
2073
- */
2074
- interval?: number;
2075
- /**
2076
- * 多久后算消费视频,单位秒
2077
- *
2078
- * @type {number}
2079
- * @memberof IAutoBitrateOptsConfig
2080
- */
2081
- noStallCheckTime?: number;
2082
- /**
2083
- * 算法 方法选择见文档,默认使用31即可,目前31策略卡顿收益很高
2084
- *
2085
- * @type {number}
2086
- * @memberof IAutoBitrateOptsConfig
2087
- */
2088
- method?: number;
2089
- /**
2090
- * 算法模块, CDN方式为window.DashAbralgo
2091
- *
2092
- * @type {any}
2093
- * @memberof IAutoBitrateOptsConfig
2094
- */
2095
- module?: any;
2096
- }
2097
- /**
2098
- * 初始配置
2099
- *
2100
- * @export
2101
- * @interface IMemoryPlayConfig
2102
- */
2103
- export interface IMemoryPlayConfig {
2104
- /**
2105
- * 存储标识id
2106
- *
2107
- * @type {number | string}
2108
- * @memberof IMemoryPlayConfig
2109
- */
2110
- memoryId: number | string;
2111
- /**
2112
- * 设置时间函数
2113
- *
2114
- * @type {(id: number | string, time: number) => unknown}
2115
- * @memberof IMemoryPlayConfig
2116
- */
2117
- saveTime: (id: number | string, time: number) => unknown;
2118
- /**
2119
- * 获取最后一次播放时间函数
2120
- *
2121
- * @type {(id: number | string) => number | Promise<number>}
2122
- * @memberof IMemoryPlayConfig
2123
- */
2124
- getTime: (id: number | string) => number | Promise<number>;
2125
- }
2126
- export interface ApiMapConfig {
2127
- playDomain: string;
2128
- backupPlayDomain?: string;
2129
- }
2130
- declare enum StrategyNames {
2131
- H265 = "h265"
2132
- }
2133
- export declare type StrategyConfigOptions = {
2134
- [StrategyNames.H265]?: boolean | {
2135
- Strategy?: any;
2136
- disabled?: boolean;
2137
- config?: VeStrategyH265Config;
2138
- };
2139
- };
2140
- export declare type StrategyInitOptions = Omit<VeStrategyInitOptions, "strategies"> & {
2141
- Module: typeof VeStrategy;
2142
- strategies: StrategyConfigOptions;
2143
- };
2144
- declare class VeStrategyWrapper {
2145
- private static mapStrategyNameToUmdKey;
2146
- private static TEA_ID;
2147
- private sdkUmdLoader;
2148
- private webId;
2149
- private config;
2150
- private status;
2151
- private initPromise;
2152
- constructor();
2153
- private initUmdLoader;
2154
- private fetchWebId;
2155
- private fetchVeStrategy;
2156
- private fetchStrategies;
2157
- private initOnce;
2158
- init(config: StrategyInitOptions): Promise<boolean>;
2159
- prepare(): Promise<boolean>;
2160
- getDeviceId(): string;
2161
- isReady(): boolean;
2162
- getStrategyRecommendations(): StrategyRecommendation;
2163
- isHevcRecommended(): boolean;
2164
- }
2165
- declare const _default: VeStrategyWrapper;
2166
- declare class PlayerData {
2167
- id?: string;
2168
- root?: HTMLElement;
2169
- configs: any;
2170
- strategyConfig?: StrategyConfigOptions;
2171
- type: string;
2172
- isLive: boolean;
2173
- options: any;
2174
- isMobile: boolean;
2175
- playList: Stream[];
2176
- plugins: any[];
2177
- openSoftDecoding: boolean;
2178
- defaultConfig: IDefaultConfig | undefined;
2179
- isHitDefault: boolean;
2180
- codec?: CodecType;
2181
- enableH265Degrade: boolean;
2182
- languageData: {
2183
- extraLangList: IXGI18nText[];
2184
- extendLangList: IXGI18nText[];
2185
- };
2186
- current: Current;
2187
- checkExpireInterval: number;
2188
- expireDetectType: Array<"xhrStatus" | "urlExpire" | "getUrlTime">;
2189
- onMediaExpired: () => Promise<IPlayerConfig>;
2190
- onTokenExpired: () => Promise<IPlayAuthTokenConfig>;
2191
- unionId?: string;
2192
- unionInfo?: string;
2193
- isMusic?: boolean;
2194
- sdkPlugins: any[];
2195
- useHlsPluginForSafari: boolean;
2196
- enableMenu: boolean;
2197
- region: TRegionType;
2198
- playDomainDegrade: boolean;
2199
- strategiesPlugins: any[];
2200
- strategiesPluginConfigs: any;
2201
- constructor(configs: IPlayerConfig);
2202
- initPlayData(configs: any): void;
2203
- initPlaylistAndGetCurrent(configs: IPlayerConfig): any;
2204
- isCurrentH265(): boolean;
2205
- getCurrentByDefaultConfig(): Stream;
2206
- initCurrent(currentStreams: any): void;
2207
- initI18nData(languages: any): {
2208
- extraLangList: any[];
2209
- extendLangList: any[];
2210
- };
2211
- /**
2212
- * @description: 获取当前直播url
2213
- */
2214
- getCurrentUrl(): string;
2215
- /**
2216
- * @description: 获取当前的streamType
2217
- */
2218
- getCurrentStreamType(): any;
2219
- /**
2220
- * @description: 获取满足当前直播条件的流
2221
- */
2222
- getCurrentStreams(): Stream[];
2223
- /**
2224
- * @description: 获取根据线路ID去重的流,用于获取有几个线路
2225
- */
2226
- getLineList(): Stream[];
2227
- /**
2228
- * @description: 根据线路ID获取符合条件的流
2229
- * @param {number} lineId
2230
- */
2231
- getLineListByLineId(lineId: number | string): Stream[];
2232
- /**
2233
- * @description: 根据线路ID获取清晰度list,用于获取某个线路下有几个清晰度
2234
- * @param {number} lineId
2235
- */
2236
- getDefinitionListByLineId(lineId: number | string): Stream[];
2237
- /**
2238
- * @description: 根据条件筛选符合条件的流list
2239
- * @param {Condition} condition
2240
- */
2241
- getUrlList(condition: Condition): Stream[];
2242
- /**
2243
- * @description: 获取当期清晰的上一级清晰度或下一级清晰度
2244
- * @param {boolean} isDown
2245
- */
2246
- getNextDefinition(isDown: boolean, demotePriority: any): Stream[];
2247
- /**
2248
- * 获取api map
2249
- * @return { ApiMapConfig }
2250
- */
2251
- get apiMap(): ApiMapConfig;
2252
- /**
2253
- * 获取播放域名
2254
- */
2255
- get playDomain(): string;
2256
- setVodTeaId(): void;
2257
- }
2258
- declare function isMSESupport(mime?: string): boolean;
2259
- export interface IConfig {
2260
- mode?: number;
2261
- isAutoChange?: boolean;
2262
- }
2263
- declare class MobilePlayerPanel {
2264
- config: IConfig;
2265
- parent: HTMLElement;
2266
- root: any;
2267
- mode: number;
2268
- isAutoChange: number;
2269
- player: any;
2270
- children: HTMLElement | undefined;
2271
- container: HTMLElement | undefined;
2272
- title: HTMLElement | undefined;
2273
- isShow: boolean;
2274
- showCancelBtn: boolean;
2275
- constructor(args: any);
2276
- initEvents(): void;
2277
- handleOrientationChange(): void;
2278
- changeConfig(config: IConfig): void;
2279
- changeMode(mode: number): void;
2280
- renderPanel(): void;
2281
- showPanel(children: HTMLElement, title?: string, isItemList?: boolean): Promise<void>;
2282
- updatePanel(children: HTMLElement): void;
2283
- setTitle(title: any): void;
2284
- renderTitle(title: any): HTMLElement;
2285
- show(): void;
2286
- hide(): void;
2287
- handleHide(e: any): void;
2288
- bind(event: string, eventHandle: any, isBubble?: boolean): void;
2289
- destroy(): void;
2290
- }
2291
- declare enum UmdKeys {
2292
- HLS = "hls",
2293
- FLV = "flv",
2294
- XGVideo = "XGVideo",
2295
- HLSEncrypt = "hlsEncrypt",
2296
- DASH = "dash",
2297
- MP4Encrypt = "mp4Encrypt",
2298
- DanmuJS = "danmujs",
2299
- DanmuMask = "danmuMask",
2300
- StreamProbe = "streamprobe",
2301
- VeStrategy = "vestrategy",
2302
- VeStrategyH265 = "vestrategy_h265"
2303
- }
2304
- export declare type UMDMap = Record<UmdKeys, {
2305
- name: string;
2306
- pluginName?: string;
2307
- packageName: string;
2308
- devPath: string;
2309
- }>;
2310
- declare class umdLoader {
2311
- private static jsLoadMap;
2312
- umdMap: UMDMap;
2313
- backupUmdUrlMap: Record<string, string>;
2314
- failCallback: (umdName: string, err: any) => any;
2315
- region: string;
2316
- customPluginPublicPath: string;
2317
- importedPlugins: any[];
2318
- constructor();
2319
- /**
2320
- * @return { string } 插件加载的公共路径
2321
- */
2322
- get pluginPublicPath(): string;
2323
- /**
2324
- * 更新umd的备用地址
2325
- * @param {Record<string, string>} map 备用地址map
2326
- */
2327
- updateBackupMap(map: Record<string, string>): void;
2328
- /**
2329
- * 加载额外的js-sdk
2330
- * 适用 umd 模块
2331
- * 只能浏览器环境下使用
2332
- * @param url 额外加载JS 的 CDN 地址
2333
- * @param isJs 是否js文件
2334
- */
2335
- loadExtraCdn(url: string, isJs?: boolean): Promise<void>;
2336
- /**
2337
- * @description 加载xgplayer插件
2338
- * @param pluginName 插件名称
2339
- * @param successCallback 加载完成后执行的回调
2340
- * @return Promise<any>
2341
- */
2342
- loadPlugins(pluginName: UmdKeys, successCallback?: () => void): Promise<any>;
2343
- }
2344
- declare class VePlayer {
2345
- /**
2346
- * 播放相关配置数据
2347
- * @hidden
2348
- *
2349
- * @type {PlayerData}
2350
- * @memberof VePlayer
2351
- */
2352
- playerData: PlayerData;
2353
- /**
2354
- * 播放器内核实例
2355
- * @type {*}
2356
- * @memberof VePlayer
2357
- */
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
- };
2368
- /**
2369
- * @hidden
2370
- *
2371
- * @type {*}
2372
- * @memberof VePlayer
2373
- */
2374
- mountingDom: any;
2375
- /**
2376
- * @hidden
2377
- *
2378
- * @type {*}
2379
- * @memberof VePlayer
2380
- */
2381
- playerContainer: any;
2382
- /**
2383
- * @hidden
2384
- *
2385
- * @type {*}
2386
- * @memberof VePlayer
2387
- */
2388
- mobilePanel: any;
2389
- /**
2390
- *
2391
- * @private
2392
- * @type {*}
2393
- * @memberof VePlayer
2394
- */
2395
- private _emitter;
2396
- /**
2397
- *
2398
- *
2399
- * @private
2400
- * @memberof VePlayer
2401
- */
2402
- private _isFirstCreated;
2403
- /**
2404
- * @hidden
2405
- * 要注册的sdk插件
2406
- *
2407
- * @type {*}
2408
- * @memberof VePlayer
2409
- */
2410
- sdkPlugins: any[];
2411
- /**
2412
- * @hidden
2413
- * 缓存运行的sdk插件实例
2414
- *
2415
- * @type {*}
2416
- * @memberof VePlayer
2417
- */
2418
- _sdkPlugins: any;
2419
- /**
2420
- * @hidden
2421
- *
2422
- * @type {*}
2423
- * @memberof VePlayer
2424
- */
2425
- private checkExpireTimer;
2426
- /**
2427
- * @hidden
2428
- *
2429
- * @type {*}
2430
- * @memberof VePlayer
2431
- */
2432
- private _playOriginalUrl;
2433
- /**
2434
- * @hidden
2435
- * 过期次数
2436
- * @type {*}
2437
- * @memberof VePlayer
2438
- */
2439
- private expireCount;
2440
- /**
2441
- * @hidden
2442
- * 获取url的时间
2443
- * @type {*}
2444
- * @memberof VePlayer
2445
- */
2446
- private getUrlTime;
2447
- /**
2448
- * @hidden
2449
- * 延迟触发但错误
2450
- * @type {*}
2451
- * @memberof VePlayer
2452
- */
2453
- delayError: any[];
2454
- private isFirstEmitted;
2455
- /**
2456
- * @hidden
2457
- * umd加载器
2458
- * @type {*}
2459
- * @memberof VePlayer
2460
- */
2461
- sdkUmdLoader: umdLoader;
2462
- static isMSESupported: typeof isMSESupport;
2463
- static isRTMSupported: typeof import("@byted/xgplayer-rts").RtsPlugin.isSupported;
2464
- static veStrategy: typeof VeStrategy;
2465
- static sdkVersion: string;
2466
- static isRTMSupportCodec: (codec: RTMCodec, options: {
2467
- targetProfileLevel?: string;
2468
- }) => Promise<boolean>;
2469
- private vodLogCommon;
2470
- constructor(configs: IPlayerConfig);
2471
- /**
2472
- *
2473
- *
2474
- * @private
2475
- * @param {IPlayerConfig} configs 播放器配置
2476
- * @memberof VePlayer
2477
- */
2478
- private _init;
2479
- /**
2480
- * @hidden
2481
- * @description 初始化并注册sdk插件(非西瓜插件)
2482
- * @memberof VePlayer
2483
- */
2484
- _initSdkPlugins(): void;
2485
- /**
2486
- * @hidden
2487
- * @description 初始化过期检测
2488
- * @memberof VePlayer
2489
- */
2490
- initCheckExpire(): void;
2491
- /**
2492
- * @hidden
2493
- * @description 更新umdLoader 的配置
2494
- * @memberof VePlayer
2495
- */
2496
- private initUmdLoader;
2497
- private checkVodLogOptions;
2498
- /**
2499
- * @hidden
2500
- * @description umd 加载失败的回调
2501
- * @memberof VePlayer
2502
- */
2503
- umdLoadErr(umdName: any, err: any): void;
2504
- /**
2505
- * @hidden
2506
- * @description 循环执行过期检测
2507
- * @memberof VePlayer
2508
- */
2509
- onRepeat(): void;
2510
- /**
2511
- * @hidden
2512
- * @description 触发过期事件
2513
- * @memberof VePlayer
2514
- */
2515
- emitExpireEvent(): void;
2516
- /**
2517
- * @hidden
2518
- * @description 地址获取时间
2519
- * @memberof VePlayer
2520
- */
2521
- getUrlTimestamp(url: string): void;
2522
- /**
2523
- * @description 监听sdk事件
2524
- *
2525
- * @param {string} action
2526
- * @param {(...args: any[]) => void} func
2527
- * @memberof VePlayer
2528
- */
2529
- on(action: string, func: (...args: any[]) => void): void;
2530
- /**
2531
- * @description 触发sdk事件
2532
- *
2533
- * @param {string} action
2534
- * @param {*} [payload]
2535
- * @memberof VePlayer
2536
- */
2537
- emit(action: string, payload?: any): void;
2538
- /**
2539
- * 监听sdk事件,事件处理函数只执行一次
2540
- *
2541
- * @param {string} action
2542
- * @param {(...args: any[]) => void} func
2543
- * @memberof VePlayer
2544
- */
2545
- once(action: string, func: (...args: any[]) => void): void;
2546
- /**
2547
- * 解绑事件监听
2548
- *
2549
- * @param {string} action
2550
- * @param {(...args: any[]) => void} func
2551
- * @memberof VePlayer
2552
- */
2553
- off(action: string, func: (...args: any[]) => void): void;
2554
- /**
2555
- * @hidden
2556
- *
2557
- * @memberof VePlayer
2558
- */
2559
- renderDom(): void;
2560
- /**
2561
- * @hidden
2562
- *
2563
- * @return {*}
2564
- * @memberof VePlayer
2565
- */
2566
- renderPoster(): void;
2567
- /**
2568
- * @hidden
2569
- *
2570
- * @return {*}
2571
- * @memberof VePlayer
2572
- */
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
- }>;
2583
- /**
2584
- * @hidden
2585
- *
2586
- * @param {IPlayerConfig} finalOptions
2587
- * @return {void}
2588
- * @memberof VePlayer
2589
- */
2590
- setPluginConfig(finalOptions: IPlayerConfig): void;
2591
- /**
2592
- * @hidden
2593
- *
2594
- * @param {string} url 地址
2595
- * @memberof VePlayer
2596
- */
2597
- detectCodec(url: string): Promise<void>;
2598
- /**
2599
- * @hidden
2600
- *
2601
- * @param {*} options
2602
- * @return {*}
2603
- * @memberof VePlayer
2604
- */
2605
- setDefaultConfigOptions(options: any): void;
2606
- /**
2607
- * 获取当前播放视频数据
2608
- *
2609
- * @return {any}
2610
- * @memberof VePlayer
2611
- */
2612
- getCurrentPlayerConfig(): {
2613
- type?: "vod" | "live";
2614
- isLive?: boolean;
2615
- lineId?: string | number;
2616
- definition?: string;
2617
- startTime?: number;
2618
- volume?: number;
2619
- DanmuPlugin?: any;
2620
- LiveSubtitlesIconPlugin?: any;
2621
- };
2622
- /**
2623
- *
2624
- * @private
2625
- * @return {*}
2626
- * @memberof VePlayer
2627
- */
2628
- private _analyzeExtendPlugins;
2629
- /**
2630
- * @hidden
2631
- *
2632
- * @memberof VePlayer
2633
- */
2634
- beforePlayerCreate(): Promise<void>;
2635
- private prepareStrategies;
2636
- updateConfigByStrategy(): void;
2637
- /**
2638
- * @hidden
2639
- *
2640
- * @memberof VePlayer
2641
- */
2642
- afterPlayerCreate(): void;
2643
- /**
2644
- * @hidden
2645
- *
2646
- * @memberof VePlayer
2647
- */
2648
- emitDelayError(): void;
2649
- /**
2650
- * @hidden
2651
- *
2652
- * @memberof VePlayer
2653
- */
2654
- private _setPlayerInfo;
2655
- /**
2656
- *
2657
- *
2658
- * @private
2659
- * @param {boolean} isMobile
2660
- * @memberof VePlayer
2661
- */
2662
- private _mountingPlayerPanel;
2663
- /**
2664
- *
2665
- *
2666
- * @private
2667
- * @return {*}
2668
- * @memberof VePlayer
2669
- */
2670
- private _bindPlayerEvents;
2671
- /**
2672
- * @private
2673
- * @return {*}
2674
- * @memberof VePlayer
2675
- */
2676
- private onMediaExpiredAction;
2677
- /**
2678
- * @hidden
2679
- *
2680
- * @memberof VePlayer
2681
- */
2682
- private onTokenExpiredAction;
2683
- /**
2684
- *
2685
- *
2686
- * @private
2687
- * @memberof VePlayer
2688
- */
2689
- private _bindSdkEvents;
2690
- /**
2691
- * @hidden
2692
- *
2693
- * @memberof VePlayer
2694
- */
2695
- private _mountingExtendMethods;
2696
- /**
2697
- *
2698
- *
2699
- * @private
2700
- * @return {*}
2701
- * @memberof VePlayer
2702
- */
2703
- private _offPlayerEvents;
2704
- /**
2705
- * @hidden
2706
- * 切换插件展示
2707
- *
2708
- * @param {*} pluginName
2709
- * @param {*} IsShow
2710
- * @return {*}
2711
- * @memberof VePlayer
2712
- */
2713
- changePluginsIcon(pluginName: any, IsShow: any): void;
2714
- /**
2715
- * @hidden
2716
- *
2717
- * @description 对外提供获取SDK插件实例的方法
2718
- * @param { string } name
2719
- * @return {*}
2720
- * @memberof VePlayer
2721
- */
2722
- getSdkPlugin(name: any): any;
2723
- /**
2724
- * @description 更换playAuthToken的方法
2725
- * @notes 这里指同一个视频切换视频源,不能用来切换不同类型的视频
2726
- * @param { IPlayAuthTokenConfig } config authToken配置
2727
- * @param { boolean } isNewVideo 是否是新视频,默认true。若未false即表示同一个视频切换token播放,会在切换前时间点继续播放
2728
- * @memberof VePlayer
2729
- */
2730
- switchAuthToken(config: IPlayAuthTokenConfig, isNewVideo?: boolean): Promise<void>;
2731
- /**
2732
- * @description 更新playAuthToken的方法,用来更新视频地址
2733
- * @param { IPlayAuthTokenConfig } config
2734
- * @memberof VePlayer
2735
- */
2736
- updateAuthToken(config: IPlayAuthTokenConfig): Promise<void>;
2737
- /**
2738
- * @description 返回当前视频的地址
2739
- * @memberof VePlayer
2740
- */
2741
- get src(): any;
2742
- /**
2743
- * @description 设置当前视频的地址
2744
- * @notes 会重新拉取新的视频,从0开始起播
2745
- * @memberof VePlayer
2746
- */
2747
- set src(url: any);
2748
- /**
2749
- * 切换视频url
2750
- * @param {string} url 同一个视频,更新视频地址
2751
- * @notes 切换后从切换前的时间点继续播放
2752
- * @return {Promise<void>}
2753
- * @memberof VePlayer
2754
- */
2755
- switchURL(url: string): Promise<void>;
2756
- /**
2757
- * 重建播放下一个
2758
- *
2759
- * @param {playerConfig} config
2760
- * @param { boolean } isNewVideo 是否是新视频,默认true。若为false即表示同一个视频切换token播放,会在切换前时间点继续播放
2761
- * @memberof VePlayer
2762
- */
2763
- next(config: IPlayerConfig, isNewVideo?: boolean): Promise<void>;
2764
- /**
2765
- * 切换视频源
2766
- *
2767
- * @param {IPlayerConfig} config
2768
- * @param { boolean } isNewVideo 是否是新视频,默认true。若为false即表示同一个视频切换地址播放,会在切换前的时间点继续播放
2769
- * @description 默认切换后是暂停状态,如果设置了自动播放,则会自动播放
2770
- * @return{Promise<any>}
2771
- * @memberof VePlayer
2772
- */
2773
- playNext(config: IPlayerConfig, isNewVideo?: boolean): Promise<any>;
2774
- /**
2775
- * @hidden
2776
- *
2777
- * @return {*}
2778
- * @memberof VePlayer
2779
- */
2780
- resetUrlState(url: any): void;
2781
- /**
2782
- * 销毁xgplayer实例
2783
- *
2784
- * @private
2785
- * @memberof VePlayer
2786
- */
2787
- private _destroyPlayer;
2788
- /**
2789
- * @hidden
2790
- *
2791
- * @return {*}
2792
- * @memberof VePlayer
2793
- */
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
- };
2804
- /**
2805
- * @hidden
2806
- *
2807
- * @return {*}
2808
- * @memberof VePlayer
2809
- */
2810
- getSoftDecodingOption(isOpenSoftDecoding: boolean, url: string, type: string): Promise<{
2811
- mediaType?: string;
2812
- innerDegrade?: number;
2813
- codecType?: CodecType;
2814
- plugins?: any[];
2815
- }>;
2816
- /**
2817
- * @hidden
2818
- *
2819
- * @description 获取h265软解播放时的播放列表
2820
- * @memberof VePlayer
2821
- */
2822
- setH265SoftPlayList(): void;
2823
- /**
2824
- * 初始化多语言词典
2825
- *
2826
- * @param {*} languages
2827
- * @memberof VePlayer
2828
- */
2829
- private _initI18N;
2830
- /**
2831
- * 获取音乐播放模式
2832
- * @notes 仅音乐播放模式有效
2833
- * @return {PlayModeType}
2834
- * @memberof VePlayer
2835
- */
2836
- get musicMode(): PlayModeType;
2837
- /**
2838
- * 设置音乐播放模式
2839
- * @notes 仅音乐播放模式有效
2840
- * @memberof VePlayer
2841
- * @param {PlayModeType} val 模式值
2842
- */
2843
- set musicMode(val: PlayModeType);
2844
- /**
2845
- * 获取音乐播放快进快退时间跨度
2846
- * @notes 仅音乐播放模式有效
2847
- * @return {number}
2848
- * @memberof VePlayer
2849
- */
2850
- get musicTimeScale(): number;
2851
- /**
2852
- * 设置音乐播放快进快退时间跨度
2853
- * @notes 仅音乐播放模式有效
2854
- * @param {number} scale 时间跨度
2855
- * @memberof VePlayer
2856
- */
2857
- set musicTimeScale(scale: number);
2858
- /**
2859
- * 获取音乐播放列表
2860
- * @notes 仅音乐播放模式有效
2861
- * @return {IMusicListItem[]}
2862
- * @memberof VePlayer
2863
- */
2864
- get musicList(): IMusicListItem[];
2865
- /**
2866
- * 设置音乐播放列表
2867
- * @notes 仅音乐播放模式有效
2868
- * @param {IMusicListItem[]} list 播放列表
2869
- * @memberof VePlayer
2870
- */
2871
- set musicList(list: IMusicListItem[]);
2872
- /**
2873
- * 向播放列表中加入歌曲
2874
- * @notes 仅音乐播放模式有效
2875
- * @param {IMusicListItem} meta 歌曲信息
2876
- * @memberof VePlayer
2877
- */
2878
- musicAdd(meta: IMusicListItem): void;
2879
- /**
2880
- * 随机获取播放列表中某一首歌曲
2881
- * @notes 仅音乐播放模式有效
2882
- * @return {IMusicListItem} 歌曲信息
2883
- * @memberof VePlayer
2884
- */
2885
- musicRandom(): IMusicListItem;
2886
- /**
2887
- * 播放播放列表的下一首歌曲
2888
- * @notes 仅音乐播放模式有效
2889
- * @memberof VePlayer
2890
- */
2891
- musicNext(): void;
2892
- /**
2893
- * 播放播放列表的上一首歌曲
2894
- * @notes 仅音乐播放模式有效
2895
- * @memberof VePlayer
2896
- */
2897
- musicPrev(): void;
2898
- /**
2899
- * 播放播放列表的第n首歌曲
2900
- * @notes 仅音乐播放模式有效
2901
- * @param {number} index 播放列表中的序号
2902
- * @memberof VePlayer
2903
- */
2904
- musicSetIndex(index: number): void;
2905
- /**
2906
- * 歌曲快进
2907
- * @notes 仅音乐播放模式有效
2908
- * @memberof VePlayer
2909
- */
2910
- musicForward(): void;
2911
- /**
2912
- * 歌曲后退
2913
- * @notes 仅音乐播放模式有效
2914
- * @memberof VePlayer
2915
- */
2916
- musicBackward(): void;
2917
- /**
2918
- * 从播放列表移除指定歌曲
2919
- * @notes 仅音乐播放模式有效
2920
- * @param {string | number} vid 歌曲vid
2921
- * @memberof VePlayer
2922
- */
2923
- musicRemove(vid: string | number): void;
2924
- /**
2925
- * 设置ab循环
2926
- * @param { number | IABCycle } start
2927
- * @param { number } [end]
2928
- * @param { boolean } [loop]
2929
- * @param {{ [propName: string]: any }} [ext]
2930
- * @memberof VePlayer
2931
- */
2932
- musicSetAbCycle(start: number | IABCycle, end?: number, loop?: boolean, ext?: {
2933
- [propName: string]: any;
2934
- }): void;
2935
- /**
2936
- * 移除ab循环
2937
- * @memberof VePlayer
2938
- */
2939
- musicRemoveAbCycle(): void;
2940
- /**
2941
- * 获取质量日志上报的用户id
2942
- * @return {string | undefined}
2943
- * @memberof VePlayer
2944
- */
2945
- getLogUserId(): string;
2946
- /**
2947
- * 获取当前配置的region
2948
- * @return {TRegionType}
2949
- * @memberof VePlayer
2950
- */
2951
- get region(): TRegionType;
2952
- /**
2953
- * @brief 获取当前播放器内核的插件实例
2954
- * @param { string } pluginName 插件名
2955
- * @return { null | BasePlugin } plugin
2956
- */
2957
- getPlugin(pluginName: string): null | BasePlugin;
2958
- /**
2959
- * 销毁当前播放器SDK实例
2960
- *
2961
- * @memberof VePlayer
2962
- */
2963
- destroy(): Promise<void>;
2964
- }
2965
- export declare function getI18N(): typeof I18N;
2966
- declare class MusicPreset {
2967
- ignores: string[];
2968
- plugins: any[];
2969
- constructor(options: any, playerConfig: any);
2970
- }
2971
- export interface ISubTitles {
2972
- timestamp: number;
2973
- text: string;
2974
- duration: number;
2975
- url: string;
2976
- lang: string;
2977
- delimiter?: string;
2978
- textArr?: string[];
2979
- wordpiece?: any[];
2980
- }
2981
- export interface ISubTitlesState {
2982
- showLang: string;
2983
- subTitleList: ISubTitles[];
2984
- rtmpDtsGap: number;
2985
- showingSubtitle: string;
2986
- currentSub: any;
2987
- dtsBase: number;
2988
- }
2989
- declare class LiveSubTitlesPlugin extends Plugin {
2990
- static get pluginName(): string;
2991
- static get defaultConfig(): {
2992
- position: string;
2993
- showLang: string;
2994
- };
2995
- constructor(configs: any);
2996
- state: ISubTitlesState;
2997
- clearLineTimer: any;
2998
- showTimer: any;
2999
- beforePlayerInit(): void;
3000
- onPause(): void;
3001
- onPlay(): void;
3002
- destroy(): void;
3003
- clearRtmpDtsGap(): void;
3004
- clearSubTitle(isClearScreen: boolean): void;
3005
- getIsSoft(): boolean;
3006
- handleVideoTimeupdate(data: any): void;
3007
- renderSubtitle(subTitle: ISubTitles): void;
3008
- handleSEIParsed(sei: any, originPts?: any): void;
3009
- insertSubTitle(...subTitles: ISubTitles[]): void;
3010
- setCurrentLang(lang: string): void;
3011
- adjustSubTitleTime(time: number): number;
3012
- findSubTitleByTime(currentTime: number): {
3013
- delimiter: string;
3014
- textArr: string[];
3015
- timestamp: number;
3016
- text: string;
3017
- duration: number;
3018
- url: string;
3019
- lang: string;
3020
- wordpiece?: any[];
3021
- };
3022
- splitSubTitle(subTitle: ISubTitles): {
3023
- delimiter: string;
3024
- textArr: string[];
3025
- timestamp: number;
3026
- text: string;
3027
- duration: number;
3028
- url: string;
3029
- lang: string;
3030
- wordpiece?: any[];
3031
- };
3032
- showSurplus(): void;
3033
- createNewDom(parent: HTMLElement): HTMLSpanElement;
3034
- test(): void;
3035
- getPlayTime(): void;
3036
- resetDom(el: HTMLElement): void;
3037
- render(): string;
3038
- }
3039
- export declare class LiveSubtitlesIconPlugin extends Plugin {
3040
- static get pluginName(): string;
3041
- static get defaultConfig(): {
3042
- position: string;
3043
- index: number;
3044
- defaultOpen: boolean;
3045
- default: string;
3046
- list: {
3047
- key: string;
3048
- showText: string;
3049
- }[];
3050
- };
3051
- isMobile: boolean;
3052
- isOpenState: boolean;
3053
- optionList: any;
3054
- currentLang: string;
3055
- constructor(configs: any);
3056
- afterCreate(): void;
3057
- afterPlayerInit(): void;
3058
- registerIcons(): {
3059
- aiSubOpen: {
3060
- icon: any;
3061
- class: string;
3062
- };
3063
- aiSubClose: {
3064
- icon: any;
3065
- class: string;
3066
- };
3067
- };
3068
- registerLanguageTexts(): {
3069
- sub: {
3070
- jp: string;
3071
- en: string;
3072
- zh: string;
3073
- "zh-hk": string;
3074
- };
3075
- subOpen: {
3076
- jp: string;
3077
- en: string;
3078
- zh: string;
3079
- "zh-hk": string;
3080
- };
3081
- subClose: {
3082
- jp: string;
3083
- en: string;
3084
- zh: string;
3085
- "zh-hk": string;
3086
- };
3087
- };
3088
- children(): {
3089
- LiveSubTitlesPlugin: {
3090
- plugin: typeof LiveSubTitlesPlugin;
3091
- options: {
3092
- root: HTMLElement;
3093
- showLang: string;
3094
- };
3095
- };
3096
- };
3097
- initEvents(): void;
3098
- handleButtonChange(): void;
3099
- showMobilePanel(): void;
3100
- renderItemList(): HTMLElement;
3101
- renderItem(item: any): HTMLElement;
3102
- updatePanel(): void;
3103
- showPanel(): void;
3104
- hidePanel(): void;
3105
- open(isInit?: boolean): void;
3106
- close(): void;
3107
- renderOptionList(): void;
3108
- changeSubTitleLang(key: string, isInit?: boolean): void;
3109
- toggleSubTitle(): void;
3110
- destroy(): void;
3111
- render(): string;
3112
- }
3113
- declare class NativeSubTitle extends EventEmitter {
3114
- _media: any;
3115
- _list: any[];
3116
- _languages: string;
3117
- curIndex: number;
3118
- constructor(media: any);
3119
- _init(): void;
3120
- _onChange: (e: any) => void;
3121
- /**
3122
- * @description 切换字幕
3123
- * @param { null | {
3124
- * id: any,
3125
- * language: any
3126
- * }} data
3127
- * @return {Promise<{code: number}>}
3128
- */
3129
- switch(data: any): Promise<unknown>;
3130
- switchOff(): void;
3131
- destroy(): void;
3132
- }
3133
- export interface IPanelItem {
3134
- showText: string;
3135
- selected: boolean;
3136
- language?: string | number;
3137
- "data-id"?: number | string;
3138
- "data-type"?: string;
3139
- }
3140
- export declare class Subtitle extends Plugin {
3141
- constructor(args: any);
3142
- static get pluginName(): string;
3143
- static get defaultConfig(): {
3144
- position: string;
3145
- index: number;
3146
- list: any[];
3147
- isDefaultOpen: boolean;
3148
- style: {
3149
- follow: boolean;
3150
- mode: string;
3151
- followBottom: number;
3152
- fitVideo: boolean;
3153
- offsetBottom: number;
3154
- baseSizeX: number;
3155
- baseSizeY: number;
3156
- minSize: number;
3157
- minMobileSize: number;
3158
- line: string;
3159
- fontColor: string;
3160
- };
3161
- isShowIcon: boolean;
3162
- mode: string;
3163
- updateMode: string;
3164
- };
3165
- private _delegates;
3166
- isOpenState: boolean;
3167
- optionList: any;
3168
- currentLang: string;
3169
- subTitles: any;
3170
- curIndex: number;
3171
- curItem: ISubTitleItem;
3172
- player: Player & {
3173
- _subTitles?: NativeSubTitle;
3174
- };
3175
- afterCreate(): void;
3176
- /**
3177
- * @description 初始化原生字幕
3178
- *
3179
- */
3180
- _initNativeSubtitle(defaultIndex: any): void;
3181
- /**
3182
- * 初始化外挂字幕
3183
- * @param {number} defaultIndex
3184
- */
3185
- _initExtSubTitle(defaultIndex: any): void;
3186
- _renderList(defaultIndex: any): void;
3187
- _onOff(): void;
3188
- _onChange(data: any): void;
3189
- _onListReset(data: any): void;
3190
- updateCurItem(cIndex: any, subtitle: any): void;
3191
- initEvents(): void;
3192
- handleButtonChange(e: any): void;
3193
- showList(): void;
3194
- hideList(): void;
3195
- openSubtitle(): void;
3196
- getSubTitleIndex(list: any, subtitle?: {
3197
- id: string;
3198
- language: string;
3199
- }): number;
3200
- registerIcons(): {
3201
- vttSubOpen: {
3202
- icon: any;
3203
- class: string;
3204
- };
3205
- vttSubClose: {
3206
- icon: any;
3207
- class: string;
3208
- };
3209
- };
3210
- registerLanguageTexts(): {
3211
- sub: {
3212
- jp: string;
3213
- en: string;
3214
- zh: string;
3215
- "zh-hk": string;
3216
- };
3217
- subOpen: {
3218
- jp: string;
3219
- en: string;
3220
- zh: string;
3221
- "zh-hk": string;
3222
- };
3223
- subClose: {
3224
- jp: string;
3225
- en: string;
3226
- zh: string;
3227
- "zh-hk": string;
3228
- };
3229
- };
3230
- creatOptionList(): void;
3231
- getList(): any;
3232
- renderOptionList(): void;
3233
- handlerClickSwitch: (e: any, data: any) => void;
3234
- /**
3235
- *
3236
- * @param {ISubTitleItem} subtitle
3237
- * @returns
3238
- */
3239
- switchSubTitle(subtitle?: ISubTitleItem): any;
3240
- switchOffSubtitle(): void;
3241
- noShowSubtitle(): void;
3242
- renderItemList(): void;
3243
- /**
3244
- *
3245
- * @param { Array<SubTitleItem> } list
3246
- * @param { boolean } needRemove 是否移除原来的字幕
3247
- */
3248
- updateSubtitles(list?: any[], needRemove?: boolean): void;
3249
- updateList(data?: {
3250
- list?: any[];
3251
- isOpen?: boolean;
3252
- }): void;
3253
- changeTipText(): void;
3254
- showMobilePanel(): void;
3255
- updatePanel(): void;
3256
- renderPanel(): HTMLElement;
3257
- renderPanelItem(item: IPanelItem): HTMLElement;
3258
- getTextByLang(item: any, key?: any, lang?: any): any;
3259
- onPlayerFocus: (e: any) => void;
3260
- onPlayerBlur: (e: any) => void;
3261
- rePosition(): void;
3262
- destroy(): void;
3263
- render(): string;
3264
- }
3265
- export declare class DefinitionDemotePlugin extends Plugin {
3266
- static get pluginName(): string;
3267
- waitings: number[];
3268
- timer: any;
3269
- longWaitingEmitTime: number;
3270
- waitingStartTime: number;
3271
- playerData: any;
3272
- isNeedShowTips: boolean;
3273
- static get defaultConfig(): {
3274
- oftenWaitingCount: number;
3275
- oftenWaitingTime: number;
3276
- longWaitingTime: number;
3277
- isNeedAutoDemote: boolean;
3278
- demotePriority: any[];
3279
- };
3280
- constructor(args: any);
3281
- registerLanguageTexts(): {
3282
- definition_demote_txt: {
3283
- jp: string;
3284
- en: string;
3285
- zh: string;
3286
- "zh-hk": string;
3287
- };
3288
- };
3289
- afterCreate(): void;
3290
- bindCtx(): void;
3291
- bindEvents(): void;
3292
- _waiting(): void;
3293
- _count(): void;
3294
- _time(): void;
3295
- _clearTime(): void;
3296
- clearState(): void;
3297
- demote(): void;
3298
- changeUrl(url: any): void;
3299
- showToast(definition: any): void;
3300
- destroy(): void;
3301
- }
3302
- export declare class TimeShiftPlugin extends Plugin {
3303
- static get pluginName(): string;
3304
- static get defaultConfig(): {
3305
- position: string;
3306
- livingStartTime: number;
3307
- maxMoveTime: number;
3308
- currentTime: number;
3309
- timeShiftUrl: string;
3310
- cardList: any[];
3311
- };
3312
- isMobile: boolean;
3313
- playedBar: any;
3314
- cachedBar: any;
3315
- innerBar: any;
3316
- progressBtn: any;
3317
- progressPoint: any;
3318
- backLiveBt: any;
3319
- cardDomList: any[];
3320
- initTime: number;
3321
- liveGap: number;
3322
- shiftTimeGap: number;
3323
- isProgressMoving: boolean;
3324
- isPlayTimeShift: boolean;
3325
- private liveUrl;
3326
- get duration(): any;
3327
- registerLanguageTexts(): {
3328
- BACKLIVE: {
3329
- jp: string;
3330
- en: string;
3331
- zh: string;
3332
- "zh-hk": string;
3333
- };
3334
- };
3335
- updateLang(): void;
3336
- afterCreate(): void;
3337
- clacTime(): void;
3338
- initEvents(): void;
3339
- bindDomEvents(): void;
3340
- handleTimeUpdate(): void;
3341
- onBodyClick: (e: any) => void;
3342
- handleMouseDown(e: any): void;
3343
- handleMouseMove(e: any): void;
3344
- handleMouseUp(e: any): void;
3345
- handleMouseEnter(e: any): void;
3346
- handleMouseLeave(): void;
3347
- focus(): void;
3348
- blur(): void;
3349
- computeTime(e: any): {
3350
- percent: number;
3351
- offset: number;
3352
- width: any;
3353
- left: any;
3354
- e: any;
3355
- };
3356
- tipsUpdate(e: any): void;
3357
- updateShiftTime(percent: number): void;
3358
- getCurrentProgress(): number;
3359
- progressUpdate(): void;
3360
- changeTimeShift(time: any): void;
3361
- changeTimeUrl(): void;
3362
- createBackLiveBtDom(): any;
3363
- backLive(): void;
3364
- toggleBackButton(): void;
3365
- updateCardList(cardList: any): void;
3366
- clearCardDom(): void;
3367
- createTimeShiftCard(): void;
3368
- renderCard(card: any): void;
3369
- cardProcessUpdate(): void;
3370
- calcCardProcess(time: any): number;
3371
- destroy(): void;
3372
- render(): string;
3373
- }
3374
- export declare class MirrorPlugin extends Plugin {
3375
- static get pluginName(): string;
3376
- static get defaultConfig(): {
3377
- position: string;
3378
- index: number;
3379
- disable: boolean;
3380
- defaultEnable: boolean;
3381
- };
3382
- isEnableMirror: boolean;
3383
- constructor(args: any);
3384
- afterCreate(): void;
3385
- registerIcons(): {
3386
- [x: string]: {
3387
- icon: any;
3388
- class: string;
3389
- };
3390
- };
3391
- initIcons(): void;
3392
- registerLanguageTexts(): {
3393
- getMirror: {
3394
- jp: string;
3395
- en: string;
3396
- zh: string;
3397
- "zh-hk": string;
3398
- };
3399
- exitMirror: {
3400
- jp: string;
3401
- en: string;
3402
- zh: string;
3403
- "zh-hk": string;
3404
- };
3405
- };
3406
- btnClick(e: any): void;
3407
- action(flag: any): void;
3408
- updateMirrorState(isEnableMirror: any): void;
3409
- animate(isEnableMirror: any): void;
3410
- switchTips(isEnableMirror: any): void;
3411
- destroy(): void;
3412
- render(): string;
3413
- }
3414
- declare class ToastPlugin extends Plugin {
3415
- static get pluginName(): string;
3416
- static get defaultConfig(): {
3417
- index: number;
3418
- };
3419
- constructor(args: any);
3420
- private toastNumber;
3421
- private toastMaps;
3422
- beforePlayerInit(): void;
3423
- afterPlayerInit(): void;
3424
- afterCreate(): void;
3425
- destroy(): void;
3426
- add(content: string | HTMLElement, duration?: number, isNeedCloseBt?: boolean): number;
3427
- remove(id: number): void;
3428
- renderToast(content: string | HTMLElement, isNeedCloseBt: any, id: any): HTMLElement;
3429
- render(): string;
3430
- }
3431
- export declare class MemoryPlay extends Plugin {
3432
- static get pluginName(): string;
3433
- static get defaultConfig(): {
3434
- getTime: any;
3435
- saveTime: any;
3436
- memoryId: string;
3437
- };
3438
- startTime: number;
3439
- saveTimeFun: (id: number | string, time: number) => unknown;
3440
- getTimeFun: (id: number | string) => number | Promise<number>;
3441
- memoryId: number | string;
3442
- canJump: boolean;
3443
- constructor(args: any);
3444
- registerLanguageTexts(): {
3445
- preText: {
3446
- jp: string;
3447
- en: string;
3448
- zh: string;
3449
- "zh-hk": string;
3450
- };
3451
- };
3452
- children(): {
3453
- toast: typeof ToastPlugin;
3454
- };
3455
- afterCreate(): void;
3456
- beforePlayerInit(): Promise<void>;
3457
- destroy(): void;
3458
- getTime(): Promise<void>;
3459
- setSave(): void;
3460
- showToast(): void;
3461
- saveTimeByStorage(memoryId: any, time: any): void;
3462
- getTimeByStorage(memoryId: any): string;
3463
- }
3464
- export declare type InfoItem = {
3465
- key: string;
3466
- label: string;
3467
- labelTextKey?: string;
3468
- value?: any;
3469
- render?: (key: any) => string;
3470
- type?: string;
3471
- dom?: Element;
3472
- };
3473
- /**
3474
- * 直播信息面板
3475
- */
3476
- export declare class LiveInfoPanel extends Plugin {
3477
- private _pollTimer;
3478
- private _infoItems;
3479
- static get pluginName(): string;
3480
- static get defaultConfig(): {
3481
- visible: boolean;
3482
- showH265Info: boolean;
3483
- };
3484
- get streamType(): any;
3485
- afterCreate(): void;
3486
- registerLanguageTexts(): {
3487
- DECODEFPS: {
3488
- en: string;
3489
- zh: string;
3490
- };
3491
- DECODECOST: {
3492
- en: string;
3493
- zh: string;
3494
- };
3495
- FORMAT: {
3496
- en: string;
3497
- zh: string;
3498
- };
3499
- FPS: {
3500
- en: string;
3501
- zh: string;
3502
- };
3503
- BITRATE: {
3504
- en: string;
3505
- zh: string;
3506
- };
3507
- GOP: {
3508
- en: string;
3509
- zh: string;
3510
- };
3511
- RESOLUTION: {
3512
- en: string;
3513
- zh: string;
3514
- };
3515
- ENCODETYPE: {
3516
- en: string;
3517
- zh: string;
3518
- };
3519
- BUFFEREND: {
3520
- en: string;
3521
- zh: string;
3522
- };
3523
- CURRENTTIME: {
3524
- en: string;
3525
- zh: string;
3526
- };
3527
- };
3528
- _getDefaultInfo(data: any): Record<string, InfoItem>;
3529
- _init(): void;
3530
- _getStats(): any;
3531
- _getInfoListData(): Record<string, InfoItem>;
3532
- _initDom(infoItems: any): any;
3533
- _updateTitle(rowDom: Element, item: InfoItem): void;
3534
- _updateDom(rowdom: Element, newItem: InfoItem): void;
3535
- _renderLabel(item: InfoItem): any;
3536
- _renderValue(item: InfoItem): any;
3537
- _handleDataChange(): void;
3538
- _tick(): void;
3539
- _poll(): void;
3540
- destroy(): void;
3541
- _handleError(): void;
3542
- _handleLoadedData(): void;
3543
- _open(): void;
3544
- _close(): void;
3545
- open(): void;
3546
- close(): void;
3547
- render(): string;
3548
- }
3549
- export declare class SdkPlugin {
3550
- pluginName: string;
3551
- __args: any;
3552
- sdk: VePlayer;
3553
- playerData: PlayerData;
3554
- player: Player;
3555
- _emitter: EventEmitter;
3556
- static defineGetterOrSetter(Obj: any, map: any): void;
3557
- /**
3558
- * @type { string }
3559
- */
3560
- static get pluginName(): string;
3561
- /**
3562
- * @constructor
3563
- * @param { { sdk: object, pluginName: string, [propName: string]: any;} } args
3564
- */
3565
- constructor(args: any);
3566
- /**
3567
- * @description sdk实例创建,挂载插件实例时首先执行
3568
- */
3569
- beforeCreate(): void;
3570
- /**
3571
- * @description sdk实例创建,挂载插件实例完后执行
3572
- */
3573
- afterCreate(): void;
3574
- /**
3575
- * @description sdk创建播放器前执行,只有这里能保证异步操作在creatPlayer之前同步完成
3576
- */
3577
- beforePlayerCreate(): void;
3578
- /**
3579
- * @description sdk创建播放器完执行
3580
- */
3581
- afterPlayerCreate(): void;
3582
- /**
3583
- * @description sdk销毁时执行
3584
- */
3585
- destroy(): void;
3586
- /**
3587
- * @private
3588
- * @param { any } args
3589
- */
3590
- __init(args: any): void;
3591
- /**
3592
- * @description 插件销毁
3593
- * @private
3594
- */
3595
- __destroy(): void;
3596
- }
3597
- export declare const Events: {
3598
- /**
3599
- * 弹幕配置发生变化
3600
- */
3601
- DANMU_CHANGE: string;
3602
- /**
3603
- * @hidden
3604
- */
3605
- TIME_SHIFT_CHANGE: string;
3606
- /**
3607
- * @hidden
3608
- */
3609
- AI_SUBTITLE_LANG_CHANGE: string;
3610
- /**
3611
- * @hidden
3612
- */
3613
- AI_SUBTITLE_MATCH: string;
3614
- /**
3615
- * 取消静音
3616
- */
3617
- CANCEL_UNMUTE: string;
3618
- /**
3619
- * 处罚刷新
3620
- */
3621
- REFRESH_CLICK: string;
3622
- /**
3623
- * 报错时触发降级
3624
- */
3625
- PLAY_BACKUP_CHANGE: string;
3626
- /**
3627
- * 报错时触发所有降级结束
3628
- */
3629
- PLAY_BACKUP_CHANGE_FINISH: string;
3630
- /**
3631
- * 报错时触发重试
3632
- */
3633
- PLAY_ERROR_BUTTON_CLICK: string;
3634
- /**
3635
- * 播放url改变
3636
- */
3637
- PlAY_URL_CHANGE: string;
3638
- /**
3639
- * 展示报错
3640
- */
3641
- SHOW_PLAY_ERROR: string;
3642
- /**
3643
- * @hidden
3644
- */
3645
- PLAYER_EXTEND_BUTTON: string;
3646
- /**
3647
- * 长时间waiting
3648
- */
3649
- LONG_WAITING: string;
3650
- /**
3651
- * 频繁waiting
3652
- */
3653
- OFTEN_WAITING: string;
3654
- /**
3655
- * 清晰度降级
3656
- */
3657
- DEFINITION_DEMOTE: string;
3658
- /**
3659
- *@hidden
3660
- */
3661
- LARKWINDOW_CHANGE: string;
3662
- /**
3663
- * @hidden
3664
- */
3665
- PANEL_MODE_CHANGE: string;
3666
- /**
3667
- * 清晰度切换
3668
- */
3669
- INNER_DEFINITION_CHANGE: string;
3670
- /**
3671
- * 线路切换
3672
- */
3673
- LINE_CHANGE: string;
3674
- /**
3675
- * playAuthToken获取url失败
3676
- */
3677
- GET_PLAY_URL_ERR: string;
3678
- /**
3679
- * 资源过期
3680
- */
3681
- MEDIA_EXPIRED: string;
3682
- /**
3683
- * 开启镜像
3684
- */
3685
- MIRROR_CHANGE: string;
3686
- /**
3687
- * 音乐播放器快进快退跨度
3688
- */
3689
- TIME_SCALE_CHANGE: string;
3690
- /**
3691
- * 音乐播放器播放模式改变
3692
- */
3693
- MUSIC_MODE_CHANGE: string;
3694
- /**
3695
- * 音乐播放器切换音乐
3696
- */
3697
- MUSIC_CHANGE: string;
3698
- /**
3699
- * 音乐播放列表发生变化
3700
- */
3701
- MUSIC_LIST_CHANGE: string;
3702
- /**
3703
- * 自动播放成功
3704
- */
3705
- AUTOPLAY_SUCCESS: string;
3706
- /**
3707
- * 自动播放失败
3708
- */
3709
- AUTOPLAY_FAILED: string;
3710
- /**
3711
- * 右键菜单事件,事件data中包含具体信息
3712
- */
3713
- MENU_LOG: string;
3714
- /**
3715
- * 点击了右键菜单的反馈按钮
3716
- */
3717
- MENU_REPORT: string;
3718
- /**
3719
- * 播放列表更新
3720
- */
3721
- PLAY_LIST_CHANGE: string;
3722
- /**
3723
- * 播放列表播放项变更
3724
- */
3725
- PLAY_LIST_ITEM_CHANGE: string;
3726
- /**
3727
- * 播放器完成创建
3728
- */
3729
- PLAYER_CREATED_FINISH: string;
3730
- /**
3731
- * 播放器重建
3732
- */
3733
- PLAYER_REBUILD: string;
3734
- /**
3735
- * 硬解不支持
3736
- */
3737
- NOT_SUPPORT_HARDWARE_DECODER: string;
3738
- /**
3739
- * 软解不支持
3740
- */
3741
- NOT_SUPPORT_SOFT_DECODER: string;
3742
- /**
3743
- * playAuthToken 过期
3744
- */
3745
- TOKEN_EXPIRED: string;
3746
- /**
3747
- * umd 加载失败
3748
- */
3749
- 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";
3807
- };
3808
- export declare const Event: {
3809
- SDKEvents: {
3810
- /**
3811
- * 播放器完成创建
3812
- */
3813
- PLAYER_CREATED_FINISH: string;
3814
- /**
3815
- * 播放器重建
3816
- */
3817
- PLAYER_REBUILD: string;
3818
- /**
3819
- * 硬解不支持
3820
- */
3821
- NOT_SUPPORT_HARDWARE_DECODER: string;
3822
- /**
3823
- * 软解不支持
3824
- */
3825
- NOT_SUPPORT_SOFT_DECODER: string;
3826
- /**
3827
- * playAuthToken 过期
3828
- */
3829
- TOKEN_EXPIRED: string;
3830
- /**
3831
- * umd 加载失败
3832
- */
3833
- UMD_LOAD_FAIL: string;
3834
- };
3835
- PluginEvents: {
3836
- /**
3837
- * 弹幕配置发生变化
3838
- */
3839
- DANMU_CHANGE: string;
3840
- /**
3841
- * @hidden
3842
- */
3843
- TIME_SHIFT_CHANGE: string;
3844
- /**
3845
- * @hidden
3846
- */
3847
- AI_SUBTITLE_LANG_CHANGE: string;
3848
- /**
3849
- * @hidden
3850
- */
3851
- AI_SUBTITLE_MATCH: string;
3852
- /**
3853
- * 取消静音
3854
- */
3855
- CANCEL_UNMUTE: string;
3856
- /**
3857
- * 处罚刷新
3858
- */
3859
- REFRESH_CLICK: string;
3860
- /**
3861
- * 报错时触发降级
3862
- */
3863
- PLAY_BACKUP_CHANGE: string;
3864
- /**
3865
- * 报错时触发所有降级结束
3866
- */
3867
- PLAY_BACKUP_CHANGE_FINISH: string;
3868
- /**
3869
- * 报错时触发重试
3870
- */
3871
- PLAY_ERROR_BUTTON_CLICK: string;
3872
- /**
3873
- * 播放url改变
3874
- */
3875
- PlAY_URL_CHANGE: string;
3876
- /**
3877
- * 展示报错
3878
- */
3879
- SHOW_PLAY_ERROR: string;
3880
- /**
3881
- * @hidden
3882
- */
3883
- PLAYER_EXTEND_BUTTON: string;
3884
- /**
3885
- * 长时间waiting
3886
- */
3887
- LONG_WAITING: string;
3888
- /**
3889
- * 频繁waiting
3890
- */
3891
- OFTEN_WAITING: string;
3892
- /**
3893
- * 清晰度降级
3894
- */
3895
- DEFINITION_DEMOTE: string;
3896
- /**
3897
- *@hidden
3898
- */
3899
- LARKWINDOW_CHANGE: string;
3900
- /**
3901
- * @hidden
3902
- */
3903
- PANEL_MODE_CHANGE: string;
3904
- /**
3905
- * 清晰度切换
3906
- */
3907
- INNER_DEFINITION_CHANGE: string;
3908
- /**
3909
- * 线路切换
3910
- */
3911
- LINE_CHANGE: string;
3912
- /**
3913
- * playAuthToken获取url失败
3914
- */
3915
- GET_PLAY_URL_ERR: string;
3916
- /**
3917
- * 资源过期
3918
- */
3919
- MEDIA_EXPIRED: string;
3920
- /**
3921
- * 开启镜像
3922
- */
3923
- MIRROR_CHANGE: string;
3924
- /**
3925
- * 音乐播放器快进快退跨度
3926
- */
3927
- TIME_SCALE_CHANGE: string;
3928
- /**
3929
- * 音乐播放器播放模式改变
3930
- */
3931
- MUSIC_MODE_CHANGE: string;
3932
- /**
3933
- * 音乐播放器切换音乐
3934
- */
3935
- MUSIC_CHANGE: string;
3936
- /**
3937
- * 音乐播放列表发生变化
3938
- */
3939
- MUSIC_LIST_CHANGE: string;
3940
- /**
3941
- * 自动播放成功
3942
- */
3943
- AUTOPLAY_SUCCESS: string;
3944
- /**
3945
- * 自动播放失败
3946
- */
3947
- AUTOPLAY_FAILED: string;
3948
- /**
3949
- * 右键菜单事件,事件data中包含具体信息
3950
- */
3951
- MENU_LOG: string;
3952
- /**
3953
- * 点击了右键菜单的反馈按钮
3954
- */
3955
- MENU_REPORT: string;
3956
- /**
3957
- * 播放列表更新
3958
- */
3959
- PLAY_LIST_CHANGE: string;
3960
- /**
3961
- * 播放列表播放项变更
3962
- */
3963
- PLAY_LIST_ITEM_CHANGE: string;
3964
- };
3965
- };
3966
- export * from "xgplayer";
3967
-
3968
- export {
3969
- LiveSubTitlesPlugin as LiveSubtitlesPlugin,
3970
- MusicPreset as Music,
3971
- VePlayer as default,
3972
- };
3973
-
3974
- export {};