@volcengine/veplayer 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15056 -0
- package/LICENSE +20 -0
- package/README.md +64 -0
- package/dist/index.d.ts +2735 -0
- package/dist/index.min.css +1 -0
- package/dist/index.min.js +1 -0
- package/package.json +66 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2735 @@
|
|
|
1
|
+
import { Property } from 'dom-helpers/esm/types';
|
|
2
|
+
import { BasePlugin, I18N, IPlayerOptions, IXGI18nText, Plugin } from 'xgplayer';
|
|
3
|
+
|
|
4
|
+
declare enum POSITIONS {
|
|
5
|
+
ROOT = "root",
|
|
6
|
+
ROOT_LEFT = "rootLeft",
|
|
7
|
+
ROOT_RIGHT = "rootRight",
|
|
8
|
+
ROOT_TOP = "rootTop",
|
|
9
|
+
CONTROLS_LEFT = "controlsLeft",
|
|
10
|
+
CONTROLS_RIGHT = "controlsRight",
|
|
11
|
+
CONTROLS_CENTER = "controlsCenter"
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @detail Options
|
|
15
|
+
*
|
|
16
|
+
*
|
|
17
|
+
* @export
|
|
18
|
+
* @interface ISdkErrorConfig
|
|
19
|
+
*/
|
|
20
|
+
export interface ISdkErrorConfig {
|
|
21
|
+
/**
|
|
22
|
+
* 报错时是否显示提示图片
|
|
23
|
+
* 默认:true
|
|
24
|
+
*
|
|
25
|
+
* @type {boolean}
|
|
26
|
+
* @memberof ISdkErrorConfig
|
|
27
|
+
*/
|
|
28
|
+
errorImg?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* 报错时是否展示
|
|
31
|
+
* 默认:true
|
|
32
|
+
*
|
|
33
|
+
* @type {boolean}
|
|
34
|
+
* @memberof ISdkErrorConfig
|
|
35
|
+
*/
|
|
36
|
+
errorTips?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* 报错时是否展示“刷新”按钮
|
|
39
|
+
* 默认:true
|
|
40
|
+
*
|
|
41
|
+
* @type {boolean}
|
|
42
|
+
* @memberof ISdkErrorConfig
|
|
43
|
+
*/
|
|
44
|
+
isNeedRefreshButton?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* 报错后是否进行降级,true则降级到playlist中相应 backUrlList字段(type为 rtm 不能设置true)
|
|
47
|
+
* 默认:false
|
|
48
|
+
*
|
|
49
|
+
* @type {boolean}
|
|
50
|
+
* @memberof ISdkErrorConfig
|
|
51
|
+
*/
|
|
52
|
+
isNeedDemoteBack?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
* 报错后重试次数
|
|
56
|
+
* 默认: 1
|
|
57
|
+
*
|
|
58
|
+
* @type {number}
|
|
59
|
+
* @memberof ISdkErrorConfig
|
|
60
|
+
*/
|
|
61
|
+
retryLoopNum?: number;
|
|
62
|
+
/**
|
|
63
|
+
*
|
|
64
|
+
* 报错后提示文案
|
|
65
|
+
* 默认:播放发生错误,点击刷新试试吧
|
|
66
|
+
*
|
|
67
|
+
* @type {(HTMLElement | string)}
|
|
68
|
+
* @memberof ISdkErrorConfig
|
|
69
|
+
*/
|
|
70
|
+
errorTipsText?: HTMLElement | string;
|
|
71
|
+
/**
|
|
72
|
+
* 播放器中所处的位置
|
|
73
|
+
* @hidden
|
|
74
|
+
* @type {string}
|
|
75
|
+
* @memberof ISdkErrorConfig
|
|
76
|
+
*/
|
|
77
|
+
position?: POSITIONS;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @detail Options
|
|
81
|
+
*
|
|
82
|
+
*
|
|
83
|
+
* @export
|
|
84
|
+
* @interface IRtmConfig
|
|
85
|
+
*/
|
|
86
|
+
export interface IRtmConfig {
|
|
87
|
+
/**
|
|
88
|
+
* sdp接口请求超时等待时间, 单位 ms
|
|
89
|
+
* 默认值: 5000
|
|
90
|
+
*
|
|
91
|
+
* @type {number}
|
|
92
|
+
* @memberof IRtmConfig
|
|
93
|
+
*/
|
|
94
|
+
loadTimeout?: number;
|
|
95
|
+
/**
|
|
96
|
+
* sdp接口请求失败时重试间隔时间, 单位 ms
|
|
97
|
+
* 默认值:1000
|
|
98
|
+
*
|
|
99
|
+
* @type {number}
|
|
100
|
+
* @memberof IRtmConfig
|
|
101
|
+
*/
|
|
102
|
+
retryDelay?: number;
|
|
103
|
+
/**
|
|
104
|
+
* sdp接口请求失败时的重试次数
|
|
105
|
+
* 默认值:0
|
|
106
|
+
*
|
|
107
|
+
* @type {number}
|
|
108
|
+
* @memberof IRtmConfig
|
|
109
|
+
*/
|
|
110
|
+
retryCount?: number;
|
|
111
|
+
/**
|
|
112
|
+
* rtc播放video不会触发waiting,通过timeupdate事件模拟,两次timeupdate事件触发间隔时间大于此值时模拟waiting事件触发 , 单位 ms
|
|
113
|
+
* 默认值:300
|
|
114
|
+
*
|
|
115
|
+
* @type {number}
|
|
116
|
+
* @memberof IRtmConfig
|
|
117
|
+
*/
|
|
118
|
+
stallInterval?: number;
|
|
119
|
+
/**
|
|
120
|
+
* rtc起播建联失败时降级到flv或hls播放, 指定时开启降级,不指定建联失败对外抛error
|
|
121
|
+
* 默认值:''
|
|
122
|
+
*
|
|
123
|
+
* @type {string}
|
|
124
|
+
* @memberof IRtmConfig
|
|
125
|
+
*/
|
|
126
|
+
backupURL?: string;
|
|
127
|
+
/**
|
|
128
|
+
* 降级到flv或者hls时需要的播放插件, 配合 backupURL使用
|
|
129
|
+
* 默认值:null
|
|
130
|
+
*
|
|
131
|
+
* @type {('hls' | 'flv')}
|
|
132
|
+
* @memberof IRtmConfig
|
|
133
|
+
*/
|
|
134
|
+
backupStreamType: "hls" | "flv";
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* @detail Options
|
|
138
|
+
* @brief 弹幕相关设置
|
|
139
|
+
*
|
|
140
|
+
* @export
|
|
141
|
+
* @interface InitConfig
|
|
142
|
+
*/
|
|
143
|
+
export interface InitConfig {
|
|
144
|
+
/**
|
|
145
|
+
* 透明度, 枚举值[0, 33, 66, 99], 实际对应0, 0.33, 0.66, 1
|
|
146
|
+
* 默认:99
|
|
147
|
+
*
|
|
148
|
+
* @type {number}
|
|
149
|
+
* @memberof InitConfig
|
|
150
|
+
*/
|
|
151
|
+
opacity?: number;
|
|
152
|
+
/**
|
|
153
|
+
* 枚举值[0, 33, 66, 99] 实际对应1/4, 1/2, 3/4, 1
|
|
154
|
+
* 默认:99
|
|
155
|
+
*
|
|
156
|
+
* @type {number}
|
|
157
|
+
* @memberof InitConfig
|
|
158
|
+
*/
|
|
159
|
+
area?: number;
|
|
160
|
+
/**
|
|
161
|
+
* 速度, 枚举值[0, 20, 40, 60, 80, 100], 实际对应1/4, 1/2,1,5/4,3/2,2
|
|
162
|
+
* 默认:40
|
|
163
|
+
*
|
|
164
|
+
* @type {number}
|
|
165
|
+
* @memberof InitConfig
|
|
166
|
+
*/
|
|
167
|
+
speed?: number;
|
|
168
|
+
/**
|
|
169
|
+
* 字体大小, 枚举值[0, 50, 100],实际对应14px 16px 20px
|
|
170
|
+
* 默认:50
|
|
171
|
+
*
|
|
172
|
+
* @type {number}
|
|
173
|
+
* @memberof InitConfig
|
|
174
|
+
*/
|
|
175
|
+
fontSize?: number;
|
|
176
|
+
/**
|
|
177
|
+
* 是否打开面板
|
|
178
|
+
* 默认:false
|
|
179
|
+
*
|
|
180
|
+
* @type {boolean}
|
|
181
|
+
* @memberof InitConfig
|
|
182
|
+
*/
|
|
183
|
+
active?: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* 是否展示弹幕设置面板
|
|
186
|
+
* 默认: true
|
|
187
|
+
*
|
|
188
|
+
* @type {boolean}
|
|
189
|
+
* @memberof InitConfig
|
|
190
|
+
*/
|
|
191
|
+
usePanel?: boolean;
|
|
192
|
+
/**
|
|
193
|
+
* 弹幕列表
|
|
194
|
+
*
|
|
195
|
+
* @type {DanmuItem[]}
|
|
196
|
+
* @memberof InitConfig
|
|
197
|
+
*/
|
|
198
|
+
danmuItems?: DanmuItem[];
|
|
199
|
+
/**
|
|
200
|
+
* @hidden
|
|
201
|
+
*
|
|
202
|
+
* @type {ExternalItem[]}
|
|
203
|
+
* @memberof InitConfig
|
|
204
|
+
*/
|
|
205
|
+
external?: ExternalItem[];
|
|
206
|
+
/**
|
|
207
|
+
* @hidden
|
|
208
|
+
*
|
|
209
|
+
* @type {IMaskConfig}
|
|
210
|
+
* @memberof InitConfig
|
|
211
|
+
*/
|
|
212
|
+
maskConfig?: IMaskConfig;
|
|
213
|
+
/**
|
|
214
|
+
* @hidden
|
|
215
|
+
*
|
|
216
|
+
* @type {boolean}
|
|
217
|
+
* @memberof InitConfig
|
|
218
|
+
*/
|
|
219
|
+
maskActive?: boolean;
|
|
220
|
+
}
|
|
221
|
+
export interface IMaskConfig {
|
|
222
|
+
maskUrl: string;
|
|
223
|
+
maskOffset?: number;
|
|
224
|
+
interval?: number;
|
|
225
|
+
}
|
|
226
|
+
export interface Lang {
|
|
227
|
+
zh: string;
|
|
228
|
+
en: string;
|
|
229
|
+
[props: string]: string;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* @detail Options
|
|
233
|
+
*
|
|
234
|
+
*
|
|
235
|
+
* @export
|
|
236
|
+
* @interface DanmuItem
|
|
237
|
+
*/
|
|
238
|
+
export interface DanmuItem {
|
|
239
|
+
/**
|
|
240
|
+
* 弹幕唯一id
|
|
241
|
+
*
|
|
242
|
+
* @type {string}
|
|
243
|
+
* @memberof DanmuItem
|
|
244
|
+
*/
|
|
245
|
+
id: string;
|
|
246
|
+
/**
|
|
247
|
+
* 弹幕文案
|
|
248
|
+
*
|
|
249
|
+
* @type {string}
|
|
250
|
+
* @memberof DanmuItem
|
|
251
|
+
*/
|
|
252
|
+
txt: string;
|
|
253
|
+
/**
|
|
254
|
+
* 弹幕出现时间, 单位为ms
|
|
255
|
+
*
|
|
256
|
+
* @type {number}
|
|
257
|
+
* @memberof DanmuItem
|
|
258
|
+
*/
|
|
259
|
+
start?: number;
|
|
260
|
+
/**
|
|
261
|
+
* 是否优先显示
|
|
262
|
+
* @hidden
|
|
263
|
+
* @type {boolean}
|
|
264
|
+
* @memberof DanmuItem
|
|
265
|
+
*/
|
|
266
|
+
prior?: boolean;
|
|
267
|
+
/**
|
|
268
|
+
* 弹幕持续显示时间, 单位为ms
|
|
269
|
+
*
|
|
270
|
+
* @type {number}
|
|
271
|
+
* @memberof DanmuItem
|
|
272
|
+
*/
|
|
273
|
+
duration?: number;
|
|
274
|
+
/**
|
|
275
|
+
* 弹幕样式
|
|
276
|
+
* style : {
|
|
277
|
+
* color: '#ff9500',
|
|
278
|
+
* fontSize: '20px',
|
|
279
|
+
* padding: '2px 11px'
|
|
280
|
+
* }
|
|
281
|
+
*
|
|
282
|
+
* @type {Partial<Record<Property, string>>}
|
|
283
|
+
* @memberof DanmuItem
|
|
284
|
+
*/
|
|
285
|
+
style?: Partial<Record<Property, string>>;
|
|
286
|
+
}
|
|
287
|
+
export interface ExternalItem {
|
|
288
|
+
key: string;
|
|
289
|
+
name: string;
|
|
290
|
+
value: boolean;
|
|
291
|
+
lang?: Lang;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* @detail Options
|
|
295
|
+
*
|
|
296
|
+
* @export
|
|
297
|
+
* @interface ISubtitleConfig
|
|
298
|
+
*/
|
|
299
|
+
export interface ISubtitleConfig {
|
|
300
|
+
/**
|
|
301
|
+
*
|
|
302
|
+
* @hidden
|
|
303
|
+
*/
|
|
304
|
+
[propName: string]: any;
|
|
305
|
+
/**
|
|
306
|
+
* 图标位置
|
|
307
|
+
* 默认值:controlsRight
|
|
308
|
+
* @type {string}
|
|
309
|
+
* @memberof ISubtitleConfig
|
|
310
|
+
*/
|
|
311
|
+
position?: string;
|
|
312
|
+
/**
|
|
313
|
+
* 图标排列权重
|
|
314
|
+
* 默认值:6
|
|
315
|
+
* @type {number}
|
|
316
|
+
* @memberof ISubtitleConfig
|
|
317
|
+
*/
|
|
318
|
+
index?: number;
|
|
319
|
+
/**
|
|
320
|
+
* 字幕列表
|
|
321
|
+
* 默认值:无
|
|
322
|
+
* @type {Array<SubTitleItem>}
|
|
323
|
+
* @memberof ISubtitleConfig
|
|
324
|
+
*/
|
|
325
|
+
list?: Array<ISubTitleItem>;
|
|
326
|
+
/**
|
|
327
|
+
* 是否默认打开
|
|
328
|
+
* 默认值:true
|
|
329
|
+
* @type {boolean}
|
|
330
|
+
* @memberof ISubtitleConfig
|
|
331
|
+
*/
|
|
332
|
+
isDefaultOpen?: boolean;
|
|
333
|
+
/**
|
|
334
|
+
* 字幕样式
|
|
335
|
+
* 默认值:无
|
|
336
|
+
* @type {ISubtitleStyle}
|
|
337
|
+
* @memberof ISubtitleConfig
|
|
338
|
+
*/
|
|
339
|
+
style?: ISubtitleStyle;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* @detail Options
|
|
343
|
+
*
|
|
344
|
+
* @export
|
|
345
|
+
* @interface ISubtitleStyle
|
|
346
|
+
*/
|
|
347
|
+
export interface ISubtitleStyle {
|
|
348
|
+
/**
|
|
349
|
+
* 是否跟随控制栏调整位置
|
|
350
|
+
* 默认值:true
|
|
351
|
+
* @type {boolean | null}
|
|
352
|
+
* @memberof ISubtitleStyle
|
|
353
|
+
*/
|
|
354
|
+
follow: boolean | null;
|
|
355
|
+
/**
|
|
356
|
+
* 字体显示模式,默认是描边
|
|
357
|
+
* 默认值:'stroke'
|
|
358
|
+
* @type {'stroke' | 'bg'}
|
|
359
|
+
* @memberof ISubtitleStyle
|
|
360
|
+
*/
|
|
361
|
+
mode?: "stroke" | "bg";
|
|
362
|
+
/**
|
|
363
|
+
* 跟随底部控制栏的高度
|
|
364
|
+
* 默认值:50
|
|
365
|
+
* @type {number}
|
|
366
|
+
* @memberof ISubtitleStyle
|
|
367
|
+
*/
|
|
368
|
+
followBottom?: number;
|
|
369
|
+
/**
|
|
370
|
+
* 是否跟随视频自动调整字号
|
|
371
|
+
* 默认值:true
|
|
372
|
+
* @type {boolean}
|
|
373
|
+
* @memberof ISubtitleStyle
|
|
374
|
+
*/
|
|
375
|
+
fitVideo?: boolean;
|
|
376
|
+
/**
|
|
377
|
+
* 字幕距离画面底部百分比
|
|
378
|
+
* 默认值:4
|
|
379
|
+
* @type {number}
|
|
380
|
+
* @memberof ISubtitleStyle
|
|
381
|
+
*/
|
|
382
|
+
offsetBottom?: number;
|
|
383
|
+
/**
|
|
384
|
+
* 横屏视频适配基准字号
|
|
385
|
+
* 默认值:49
|
|
386
|
+
* @type {number}
|
|
387
|
+
* @memberof ISubtitleStyle
|
|
388
|
+
*/
|
|
389
|
+
baseSizeX?: number;
|
|
390
|
+
/**
|
|
391
|
+
* 竖屏视频适配基准字号
|
|
392
|
+
* 默认值:28
|
|
393
|
+
* @type {number}
|
|
394
|
+
* @memberof ISubtitleStyle
|
|
395
|
+
*/
|
|
396
|
+
baseSizeY?: number;
|
|
397
|
+
/**
|
|
398
|
+
* pc端最小字号
|
|
399
|
+
* 默认值:16
|
|
400
|
+
* @type {number}
|
|
401
|
+
* @memberof ISubtitleStyle
|
|
402
|
+
*/
|
|
403
|
+
minSize?: number;
|
|
404
|
+
/**
|
|
405
|
+
* 移动端最小字号
|
|
406
|
+
* 默认值:13
|
|
407
|
+
* @type {number}
|
|
408
|
+
* @memberof ISubtitleStyle
|
|
409
|
+
*/
|
|
410
|
+
minMobileSize?: number;
|
|
411
|
+
/**
|
|
412
|
+
* 最大显示行数
|
|
413
|
+
* 默认值:'double'
|
|
414
|
+
* @type {'double' | 'single' | 'three'}
|
|
415
|
+
* @memberof ISubtitleStyle
|
|
416
|
+
*/
|
|
417
|
+
line?: "double" | "single" | "three";
|
|
418
|
+
/**
|
|
419
|
+
* 字体颜色, 16位颜色值或rgb值
|
|
420
|
+
* 默认值:'#fff'
|
|
421
|
+
* @type {string}
|
|
422
|
+
* @memberof ISubtitleStyle
|
|
423
|
+
*/
|
|
424
|
+
fontColor?: string;
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* @detail Options
|
|
428
|
+
*
|
|
429
|
+
* @export
|
|
430
|
+
* @interface IListItem
|
|
431
|
+
*/
|
|
432
|
+
export interface IListItem {
|
|
433
|
+
/**
|
|
434
|
+
* 开始时间
|
|
435
|
+
* 默认值:无
|
|
436
|
+
* @type { number}
|
|
437
|
+
* @memberof IListItem
|
|
438
|
+
*/
|
|
439
|
+
start: number;
|
|
440
|
+
/**
|
|
441
|
+
* 结束时间
|
|
442
|
+
* 默认值:无
|
|
443
|
+
* @type { number}
|
|
444
|
+
* @memberof IListItem
|
|
445
|
+
*/
|
|
446
|
+
end: number;
|
|
447
|
+
/**
|
|
448
|
+
* 字幕文案列表
|
|
449
|
+
* 默认值:无
|
|
450
|
+
* @type {Array<Object>}
|
|
451
|
+
* @memberof IListItem
|
|
452
|
+
*/
|
|
453
|
+
list: {
|
|
454
|
+
/**
|
|
455
|
+
* 默认值:无
|
|
456
|
+
* @hidden
|
|
457
|
+
* @type {any}
|
|
458
|
+
*/
|
|
459
|
+
[propName: string]: any;
|
|
460
|
+
/**
|
|
461
|
+
* 开始时间
|
|
462
|
+
* @type {number}
|
|
463
|
+
*/
|
|
464
|
+
start: number;
|
|
465
|
+
/**
|
|
466
|
+
* 结束时间
|
|
467
|
+
* @type {number}
|
|
468
|
+
*/
|
|
469
|
+
end: number;
|
|
470
|
+
/**
|
|
471
|
+
* 字幕文案数组
|
|
472
|
+
* @type {string[]}
|
|
473
|
+
*/
|
|
474
|
+
text: string[];
|
|
475
|
+
/**
|
|
476
|
+
* 字幕顺序
|
|
477
|
+
* @type {number}
|
|
478
|
+
*/
|
|
479
|
+
index?: number;
|
|
480
|
+
}[];
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* @detail Options
|
|
484
|
+
*
|
|
485
|
+
* @export
|
|
486
|
+
* @interface ISubTitleItem
|
|
487
|
+
*/
|
|
488
|
+
export interface ISubTitleItem {
|
|
489
|
+
/**
|
|
490
|
+
* 字幕语言
|
|
491
|
+
* 默认值:无
|
|
492
|
+
* @type {string | number}
|
|
493
|
+
* @memberof ISubTitleItem
|
|
494
|
+
*/
|
|
495
|
+
language?: string | number;
|
|
496
|
+
/**
|
|
497
|
+
* 字幕id
|
|
498
|
+
* 默认值:无
|
|
499
|
+
* @type {string | number}
|
|
500
|
+
* @memberof ISubTitleItem
|
|
501
|
+
*/
|
|
502
|
+
id?: number | string;
|
|
503
|
+
/**
|
|
504
|
+
* 是否是默认选择的字幕
|
|
505
|
+
* 默认值:false
|
|
506
|
+
* @type {boolean}
|
|
507
|
+
* @memberof ISubTitleItem
|
|
508
|
+
*/
|
|
509
|
+
isDefault?: boolean;
|
|
510
|
+
/**
|
|
511
|
+
* 字幕名称
|
|
512
|
+
* 默认值:无
|
|
513
|
+
* @type {any}
|
|
514
|
+
* @memberof ISubTitleItem
|
|
515
|
+
*/
|
|
516
|
+
text?: any;
|
|
517
|
+
/**
|
|
518
|
+
* 外挂字幕地址
|
|
519
|
+
* 默认值:false
|
|
520
|
+
* @type {string}
|
|
521
|
+
* @memberof ISubTitleItem
|
|
522
|
+
*/
|
|
523
|
+
url?: string;
|
|
524
|
+
/**
|
|
525
|
+
* stringContent
|
|
526
|
+
* 默认值:无
|
|
527
|
+
* @hidden
|
|
528
|
+
* @type {string}
|
|
529
|
+
* @memberof ISubTitleItem
|
|
530
|
+
*/
|
|
531
|
+
stringContent?: string;
|
|
532
|
+
/**
|
|
533
|
+
* 字幕内容列表,非url形式时使用
|
|
534
|
+
* 默认值:无
|
|
535
|
+
* @type {Array<Object>}
|
|
536
|
+
* @memberof ISubTitleItem
|
|
537
|
+
*/
|
|
538
|
+
list?: {
|
|
539
|
+
/**
|
|
540
|
+
* 默认值:无
|
|
541
|
+
* @hidden
|
|
542
|
+
* @type {any}
|
|
543
|
+
*/
|
|
544
|
+
[propName: string]: any;
|
|
545
|
+
/**
|
|
546
|
+
* 开始时间
|
|
547
|
+
* @type {number}
|
|
548
|
+
*/
|
|
549
|
+
start: number;
|
|
550
|
+
/**
|
|
551
|
+
* 结束时间
|
|
552
|
+
* @type {number}
|
|
553
|
+
*/
|
|
554
|
+
end: number;
|
|
555
|
+
/**
|
|
556
|
+
* 子字幕列表
|
|
557
|
+
* @type {Array<IListItem>}
|
|
558
|
+
*/
|
|
559
|
+
list: Array<IListItem>;
|
|
560
|
+
}[];
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* @detail Options
|
|
564
|
+
*
|
|
565
|
+
*
|
|
566
|
+
* @export
|
|
567
|
+
* @interface IDefinitionDemotePlugin
|
|
568
|
+
*/
|
|
569
|
+
export interface IDefinitionDemotePlugin {
|
|
570
|
+
/**
|
|
571
|
+
* 超时重试次数
|
|
572
|
+
* 默认:3
|
|
573
|
+
*
|
|
574
|
+
* @type {number}
|
|
575
|
+
* @memberof IDefinitionDemotePlugin
|
|
576
|
+
*/
|
|
577
|
+
oftenWaitingCount?: number;
|
|
578
|
+
/**
|
|
579
|
+
* 设置经常超时时间
|
|
580
|
+
* 默认:5000
|
|
581
|
+
*
|
|
582
|
+
* @type {number}
|
|
583
|
+
* @memberof IDefinitionDemotePlugin
|
|
584
|
+
*/
|
|
585
|
+
oftenWaitingTime?: number;
|
|
586
|
+
/**
|
|
587
|
+
* 设置超时时间
|
|
588
|
+
* 默认5000
|
|
589
|
+
*
|
|
590
|
+
* @type {number}
|
|
591
|
+
* @memberof IDefinitionDemotePlugin
|
|
592
|
+
*/
|
|
593
|
+
longWaitingTime?: number;
|
|
594
|
+
/**
|
|
595
|
+
* 是否自动触发降级
|
|
596
|
+
* 默认:false
|
|
597
|
+
*
|
|
598
|
+
* @type {boolean}
|
|
599
|
+
* @memberof IDefinitionDemotePlugin
|
|
600
|
+
*/
|
|
601
|
+
isNeedAutoDemote?: boolean;
|
|
602
|
+
/**
|
|
603
|
+
*
|
|
604
|
+
* 降级顺序,按照数组顺序依次降级,数字元素对应playList中的definition
|
|
605
|
+
* 默认: ['uhd', 'hd', 'sd', 'ld', 'ao']
|
|
606
|
+
*
|
|
607
|
+
* @type {string[]}
|
|
608
|
+
* @memberof IDefinitionDemotePlugin
|
|
609
|
+
*/
|
|
610
|
+
demotePriority?: string[];
|
|
611
|
+
}
|
|
612
|
+
/**
|
|
613
|
+
* dash播放配置想
|
|
614
|
+
*
|
|
615
|
+
* @detail Options
|
|
616
|
+
* @export
|
|
617
|
+
* @interface IDashPluginConfig
|
|
618
|
+
*/
|
|
619
|
+
export interface IDashPluginConfig {
|
|
620
|
+
/**
|
|
621
|
+
* 视频vid
|
|
622
|
+
* 默认:无
|
|
623
|
+
* 播放加密视频时必选
|
|
624
|
+
*/
|
|
625
|
+
vid?: string;
|
|
626
|
+
/**
|
|
627
|
+
* 播放类型
|
|
628
|
+
* 默认:`TOP`
|
|
629
|
+
* 非必选
|
|
630
|
+
*/
|
|
631
|
+
playInfoType: "TOP";
|
|
632
|
+
/**
|
|
633
|
+
* 清晰度映射文案
|
|
634
|
+
* 默认:无
|
|
635
|
+
* 非必选
|
|
636
|
+
* @example
|
|
637
|
+
* ``` javascript
|
|
638
|
+
* { 360p: "流畅 360p",
|
|
639
|
+
* 480p: "清晰 480p",
|
|
640
|
+
* 720p: "高清 720p",
|
|
641
|
+
* 1080p: "超高清 1080p"
|
|
642
|
+
* }
|
|
643
|
+
* ```
|
|
644
|
+
*/
|
|
645
|
+
definitionText: Record<string, string>;
|
|
646
|
+
/**
|
|
647
|
+
* 默认清晰度
|
|
648
|
+
* 默认:列表第一个
|
|
649
|
+
* 非必选
|
|
650
|
+
* @example
|
|
651
|
+
* ``` javascript
|
|
652
|
+
* { 360p: "流畅 360p",
|
|
653
|
+
* 480p: "清晰 480p",
|
|
654
|
+
* 720p: "高清 720p",
|
|
655
|
+
* 1080p: "超高清 1080p"
|
|
656
|
+
* }
|
|
657
|
+
* ```
|
|
658
|
+
*/
|
|
659
|
+
defaultDefinition?: string;
|
|
660
|
+
/**
|
|
661
|
+
* 获取证书地址
|
|
662
|
+
* 默认:`//i.snssdk.com/video/drm/v1/play_licenses`
|
|
663
|
+
* 播放加密视频时必选
|
|
664
|
+
*/
|
|
665
|
+
getLicenseUrl?: string;
|
|
666
|
+
/**
|
|
667
|
+
* dash播放信息,由`Service.url`服务接口获取
|
|
668
|
+
* 默认:无
|
|
669
|
+
* 必选
|
|
670
|
+
*/
|
|
671
|
+
dashOpts?: {
|
|
672
|
+
Data: any;
|
|
673
|
+
};
|
|
674
|
+
/**
|
|
675
|
+
* 兜底的mp4播放列表,由`Service.url`服务接口获取
|
|
676
|
+
* 默认:无
|
|
677
|
+
* 非必选
|
|
678
|
+
*/
|
|
679
|
+
mp4Opts: {
|
|
680
|
+
mp4List: mp4OptsItem[];
|
|
681
|
+
};
|
|
682
|
+
/**
|
|
683
|
+
* 预加载时间,单位ms
|
|
684
|
+
* 默认:undefined
|
|
685
|
+
* 非必选
|
|
686
|
+
*/
|
|
687
|
+
preloadTime?: number;
|
|
688
|
+
/**
|
|
689
|
+
* @hidden
|
|
690
|
+
* 自适应配置项
|
|
691
|
+
* 默认:undefined
|
|
692
|
+
* 非必选
|
|
693
|
+
*/
|
|
694
|
+
autoBitrateOpts?: any;
|
|
695
|
+
/**
|
|
696
|
+
* @hidden
|
|
697
|
+
* 备用地址降级,默认情况下,当dash播放出问题后,会降级为mp4播放;
|
|
698
|
+
* 设置改参数后,会优先使用备用地址进行dash的降级播放,再次出错时,会降级为mp4播放
|
|
699
|
+
* 默认:false
|
|
700
|
+
* 非必选
|
|
701
|
+
*/
|
|
702
|
+
useBackUrl?: boolean;
|
|
703
|
+
/**
|
|
704
|
+
* @hidden
|
|
705
|
+
* 优化首帧
|
|
706
|
+
* 是针对域名,将range参数放在url后面,避免OPTIONS请求,从而优化首帧
|
|
707
|
+
* 默认:无
|
|
708
|
+
* 非必选
|
|
709
|
+
*/
|
|
710
|
+
url_range_domains?: string[];
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* dash播放的mp4兜底播放列表配置
|
|
714
|
+
*
|
|
715
|
+
* @detail Options
|
|
716
|
+
* @export
|
|
717
|
+
* @interface mp4OptsItem
|
|
718
|
+
*/
|
|
719
|
+
export interface mp4OptsItem {
|
|
720
|
+
/**
|
|
721
|
+
* 清晰度
|
|
722
|
+
* 默认: 无
|
|
723
|
+
* 必传
|
|
724
|
+
*/
|
|
725
|
+
definition: string;
|
|
726
|
+
/**
|
|
727
|
+
* mp4地址
|
|
728
|
+
* 默认: 无
|
|
729
|
+
* 必传
|
|
730
|
+
*/
|
|
731
|
+
url: string;
|
|
732
|
+
}
|
|
733
|
+
/**
|
|
734
|
+
* DASH播放配置
|
|
735
|
+
*
|
|
736
|
+
* @detail Options
|
|
737
|
+
* @export
|
|
738
|
+
* @interface IDashPluginConfig
|
|
739
|
+
*/
|
|
740
|
+
export interface IEncryptHlsPluginConfig {
|
|
741
|
+
/**
|
|
742
|
+
* 播放地址请求域名
|
|
743
|
+
* 默认:无
|
|
744
|
+
* 必选
|
|
745
|
+
*/
|
|
746
|
+
playDomain: string;
|
|
747
|
+
/**
|
|
748
|
+
* 请求类型,固定值 'TOP'
|
|
749
|
+
* 默认: 无
|
|
750
|
+
*/
|
|
751
|
+
getKeyType: string;
|
|
752
|
+
/**
|
|
753
|
+
* 密钥请求域名
|
|
754
|
+
* 默认:无
|
|
755
|
+
* 必选
|
|
756
|
+
*/
|
|
757
|
+
keyDomain: string;
|
|
758
|
+
/**
|
|
759
|
+
* 播放地址获取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)}
|
|
760
|
+
* 默认:无
|
|
761
|
+
* 必选
|
|
762
|
+
*/
|
|
763
|
+
playAuthToken: string;
|
|
764
|
+
/**
|
|
765
|
+
* 密钥获取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}
|
|
766
|
+
* 默认:无
|
|
767
|
+
* 必选
|
|
768
|
+
*/
|
|
769
|
+
keyToken: string;
|
|
770
|
+
/**
|
|
771
|
+
* hls加密播放地址
|
|
772
|
+
* 默认:无
|
|
773
|
+
*/
|
|
774
|
+
url?: string;
|
|
775
|
+
}
|
|
776
|
+
/**
|
|
777
|
+
* 质量日志配置
|
|
778
|
+
*
|
|
779
|
+
* @detail Options
|
|
780
|
+
* @export
|
|
781
|
+
* @interface IVodLogOptsConfig
|
|
782
|
+
*/
|
|
783
|
+
export interface IVodLogOptsConfig {
|
|
784
|
+
/**
|
|
785
|
+
* 表示业务来源,使用业务自己的appid即可
|
|
786
|
+
* 默认:无
|
|
787
|
+
* 必选
|
|
788
|
+
*/
|
|
789
|
+
line_app_id: number;
|
|
790
|
+
/**
|
|
791
|
+
* 用于识别单一用户的id
|
|
792
|
+
* 默认:无
|
|
793
|
+
* 必选
|
|
794
|
+
*/
|
|
795
|
+
line_user_id: string | number;
|
|
796
|
+
/**
|
|
797
|
+
* 视频类型
|
|
798
|
+
* 默认:无
|
|
799
|
+
* 必选
|
|
800
|
+
*/
|
|
801
|
+
vtype?: "MP4" | "HLS" | "DASH" | "FLV";
|
|
802
|
+
/**
|
|
803
|
+
* 自定义标签
|
|
804
|
+
* 默认:`default`
|
|
805
|
+
* 必选
|
|
806
|
+
*/
|
|
807
|
+
tag?: string;
|
|
808
|
+
/**
|
|
809
|
+
* 视频解码器类型名称
|
|
810
|
+
* 默认:`h264`
|
|
811
|
+
* 必选
|
|
812
|
+
*/
|
|
813
|
+
codec_type?: "h264" | "h265";
|
|
814
|
+
/**
|
|
815
|
+
* 是否加密,0:非drm视频,1:drm视频
|
|
816
|
+
* 默认:`0`
|
|
817
|
+
* 可选
|
|
818
|
+
*/
|
|
819
|
+
drm_type?: 0 | 1;
|
|
820
|
+
/**
|
|
821
|
+
* 播放内核版本号
|
|
822
|
+
* 默认:无
|
|
823
|
+
* 可选
|
|
824
|
+
*/
|
|
825
|
+
playerCoreVersion?: string;
|
|
826
|
+
/**
|
|
827
|
+
* 播放器版本号
|
|
828
|
+
* 默认:无
|
|
829
|
+
* 可选
|
|
830
|
+
*/
|
|
831
|
+
playerVersion?: string;
|
|
832
|
+
/**
|
|
833
|
+
* DASH播放的封装类型
|
|
834
|
+
* 默认:无
|
|
835
|
+
* 可选
|
|
836
|
+
*/
|
|
837
|
+
dynamic_type?: "segment_base" | "segment_template";
|
|
838
|
+
/**
|
|
839
|
+
* 是否使用bash,0:不使用,1:使用
|
|
840
|
+
* 默认:`0`
|
|
841
|
+
* 可选
|
|
842
|
+
*/
|
|
843
|
+
enable_bash?: 0 | 1;
|
|
844
|
+
/**
|
|
845
|
+
* 发送的埋点日志是本地缓存的时候回调
|
|
846
|
+
* 默认:无
|
|
847
|
+
* 可选
|
|
848
|
+
*/
|
|
849
|
+
sendLocalCallback?: (event: any, data: any) => void;
|
|
850
|
+
/**
|
|
851
|
+
* 是否禁用localStorage暂时缓存onPlay逻辑
|
|
852
|
+
* 默认:`false`
|
|
853
|
+
* 可选
|
|
854
|
+
*/
|
|
855
|
+
disableLocalCache?: boolean;
|
|
856
|
+
/**
|
|
857
|
+
* 数据上报渠道,可选值:cn(国内)、va(美东) 、sg(新加坡)
|
|
858
|
+
* 默认:`cn`
|
|
859
|
+
* 可选
|
|
860
|
+
*/
|
|
861
|
+
channel?: "cn" | "va" | "sg";
|
|
862
|
+
/**
|
|
863
|
+
* 是否关闭清晰度切换埋点
|
|
864
|
+
* 默认:`false`
|
|
865
|
+
* 可选
|
|
866
|
+
*/
|
|
867
|
+
closeResolutionLog?: boolean;
|
|
868
|
+
/**
|
|
869
|
+
* 关闭seek相关埋点
|
|
870
|
+
* 默认:`false`
|
|
871
|
+
* 可选
|
|
872
|
+
*/
|
|
873
|
+
closeSeekLog?: boolean;
|
|
874
|
+
/**
|
|
875
|
+
* 队列超过多少条日志的时候发送
|
|
876
|
+
* 默认:`5`
|
|
877
|
+
* 可选
|
|
878
|
+
*/
|
|
879
|
+
maxQueueCount?: number;
|
|
880
|
+
}
|
|
881
|
+
/**
|
|
882
|
+
* mp4加密日志配置项
|
|
883
|
+
*
|
|
884
|
+
* @detail Options
|
|
885
|
+
* @export
|
|
886
|
+
* @interface IMp4EncryptPlayerConfig
|
|
887
|
+
*/
|
|
888
|
+
export interface IMp4EncryptPlayerConfig {
|
|
889
|
+
/**
|
|
890
|
+
* 是否加密
|
|
891
|
+
* 默认:`false`
|
|
892
|
+
* 可选
|
|
893
|
+
*/
|
|
894
|
+
isEncrypt?: boolean;
|
|
895
|
+
/**
|
|
896
|
+
* 视频vid
|
|
897
|
+
* 默认:无
|
|
898
|
+
* 可选
|
|
899
|
+
*/
|
|
900
|
+
vid?: string;
|
|
901
|
+
/**
|
|
902
|
+
* 视频密钥 id
|
|
903
|
+
* 默认:无
|
|
904
|
+
* 可选
|
|
905
|
+
*/
|
|
906
|
+
kid?: string;
|
|
907
|
+
/**
|
|
908
|
+
* 获取密钥凭证地址
|
|
909
|
+
* 默认:无
|
|
910
|
+
* 可选
|
|
911
|
+
*/
|
|
912
|
+
getLicenseUrl?: string;
|
|
913
|
+
/**
|
|
914
|
+
* 是否使用EME
|
|
915
|
+
* 默认:`false`
|
|
916
|
+
* 可选
|
|
917
|
+
*/
|
|
918
|
+
useEME?: boolean;
|
|
919
|
+
/**
|
|
920
|
+
* 视频密钥值
|
|
921
|
+
* 默认:无
|
|
922
|
+
* 可选
|
|
923
|
+
*/
|
|
924
|
+
keyValue?: string;
|
|
925
|
+
/**
|
|
926
|
+
* 加密后的视频密钥值
|
|
927
|
+
* 默认:无
|
|
928
|
+
* 可选
|
|
929
|
+
*/
|
|
930
|
+
secretKey?: string;
|
|
931
|
+
/**
|
|
932
|
+
* 是否携带cookie
|
|
933
|
+
*/
|
|
934
|
+
withCredentials?: boolean;
|
|
935
|
+
/**
|
|
936
|
+
* drm内容
|
|
937
|
+
* 默认:无
|
|
938
|
+
* 可选
|
|
939
|
+
*/
|
|
940
|
+
drm?: {
|
|
941
|
+
clearKeys: {
|
|
942
|
+
[propName: string]: string;
|
|
943
|
+
};
|
|
944
|
+
};
|
|
945
|
+
}
|
|
946
|
+
declare enum CodecType {
|
|
947
|
+
H265 = "h265",
|
|
948
|
+
H264 = "h264"
|
|
949
|
+
}
|
|
950
|
+
/**
|
|
951
|
+
* @detail Options
|
|
952
|
+
* @brief 播放地址列表, 可配置多线路和多清晰度
|
|
953
|
+
*
|
|
954
|
+
* @export
|
|
955
|
+
* @interface Stream
|
|
956
|
+
*/
|
|
957
|
+
export interface Stream {
|
|
958
|
+
/**
|
|
959
|
+
* url类型,可以选值为“rtm”/“flv”/“mp4”/“hls”
|
|
960
|
+
*
|
|
961
|
+
* @type {('rtm' | 'flv' | 'mp4' | 'hls')}
|
|
962
|
+
* @memberof IPlayerConfig
|
|
963
|
+
*/
|
|
964
|
+
streamType?: string;
|
|
965
|
+
/**
|
|
966
|
+
* 播放地址
|
|
967
|
+
*
|
|
968
|
+
* @type {string}
|
|
969
|
+
* @memberof IPlayerConfig
|
|
970
|
+
*/
|
|
971
|
+
url: string;
|
|
972
|
+
/**
|
|
973
|
+
* 清晰度key
|
|
974
|
+
*
|
|
975
|
+
* @type {string}
|
|
976
|
+
* @memberof Stream
|
|
977
|
+
*/
|
|
978
|
+
definition?: string;
|
|
979
|
+
/**
|
|
980
|
+
* 多语言词典中对应的key, 比如 definitionTextKey: HD_TEXT_KEY
|
|
981
|
+
*
|
|
982
|
+
* languages: {
|
|
983
|
+
* zh: {
|
|
984
|
+
* HD_TEXT_KEY: '高清'
|
|
985
|
+
* }
|
|
986
|
+
* }
|
|
987
|
+
*
|
|
988
|
+
* 则清晰度切换选项显示“高清”, 不设置则显示definition的值
|
|
989
|
+
*
|
|
990
|
+
* @type {string}
|
|
991
|
+
* @memberof Stream
|
|
992
|
+
*/
|
|
993
|
+
definitionTextKey?: string;
|
|
994
|
+
/**
|
|
995
|
+
* 编码格式
|
|
996
|
+
*
|
|
997
|
+
* @type {('h265' | 'h264')}
|
|
998
|
+
* @memberof Stream
|
|
999
|
+
*/
|
|
1000
|
+
codec?: CodecType;
|
|
1001
|
+
/**
|
|
1002
|
+
* 线路唯一id
|
|
1003
|
+
*
|
|
1004
|
+
* @type {(number | string)}
|
|
1005
|
+
* @memberof Stream
|
|
1006
|
+
*/
|
|
1007
|
+
lineId?: number | string;
|
|
1008
|
+
/**
|
|
1009
|
+
* 多语言词典中对应的key, 比如 lineTextKey: LINE_ONE
|
|
1010
|
+
*
|
|
1011
|
+
* languages: {
|
|
1012
|
+
* zh: {
|
|
1013
|
+
* LINE_ONE: '线路一'
|
|
1014
|
+
* }
|
|
1015
|
+
* }
|
|
1016
|
+
*
|
|
1017
|
+
* 则线路切换选项中显示“线路一”
|
|
1018
|
+
*
|
|
1019
|
+
* @type {string}
|
|
1020
|
+
* @memberof Stream
|
|
1021
|
+
*/
|
|
1022
|
+
lineTextKey?: string;
|
|
1023
|
+
[propName: string]: any;
|
|
1024
|
+
}
|
|
1025
|
+
export interface Condition {
|
|
1026
|
+
definition?: string;
|
|
1027
|
+
lineId?: number | string;
|
|
1028
|
+
[propName: string]: any;
|
|
1029
|
+
}
|
|
1030
|
+
/**
|
|
1031
|
+
* @description 播放器当前状态
|
|
1032
|
+
*/
|
|
1033
|
+
export interface Current {
|
|
1034
|
+
definition: string;
|
|
1035
|
+
streamType: string;
|
|
1036
|
+
language: string;
|
|
1037
|
+
lineId?: number | string;
|
|
1038
|
+
codec?: CodecType;
|
|
1039
|
+
[propName: string]: any;
|
|
1040
|
+
}
|
|
1041
|
+
/**
|
|
1042
|
+
* @detail Options
|
|
1043
|
+
* @id 1
|
|
1044
|
+
* @brief options参数列表:
|
|
1045
|
+
* 本文档是介绍火山引擎直播和点播播放器VePlayer的相关参数和Api。
|
|
1046
|
+
*/
|
|
1047
|
+
export interface IPlayerConfig extends IPlayerOptions {
|
|
1048
|
+
/**
|
|
1049
|
+
* “点播”还是“直播”
|
|
1050
|
+
* @hidden
|
|
1051
|
+
* @type {('live' | 'vod')}
|
|
1052
|
+
* @memberof IPlayerConfig
|
|
1053
|
+
*/
|
|
1054
|
+
type: "live" | "vod";
|
|
1055
|
+
/**
|
|
1056
|
+
* 是否是直播,默认为false
|
|
1057
|
+
* @type {boolean}
|
|
1058
|
+
* @memberof IPlayerConfig
|
|
1059
|
+
*/
|
|
1060
|
+
isLive: boolean;
|
|
1061
|
+
/**
|
|
1062
|
+
* 播放器容器id,VePlayer将被插入在该容器中
|
|
1063
|
+
*
|
|
1064
|
+
* @notes id和root必填一个
|
|
1065
|
+
* @type {string}
|
|
1066
|
+
* @memberof IPlayerConfig
|
|
1067
|
+
*/
|
|
1068
|
+
id?: string;
|
|
1069
|
+
/**
|
|
1070
|
+
* 播放器容器,VePlayer将被插入在该容器中
|
|
1071
|
+
*
|
|
1072
|
+
* @type {HTMLElement}
|
|
1073
|
+
* @memberof IPlayerConfig
|
|
1074
|
+
*/
|
|
1075
|
+
root?: HTMLElement;
|
|
1076
|
+
/**
|
|
1077
|
+
* @hidden
|
|
1078
|
+
*
|
|
1079
|
+
* @type {IPlayerOptions}
|
|
1080
|
+
* @memberof IPlayerConfig
|
|
1081
|
+
*/
|
|
1082
|
+
options: IPlayerOptions;
|
|
1083
|
+
/**
|
|
1084
|
+
* 播放地址,
|
|
1085
|
+
* 直播可通过 {@link https://console.volcengine.com/live/main/locationGenerate 视频直播控制台} 生成
|
|
1086
|
+
*
|
|
1087
|
+
* @type {string}
|
|
1088
|
+
* @memberof IPlayerConfig
|
|
1089
|
+
*/
|
|
1090
|
+
url?: string;
|
|
1091
|
+
/**
|
|
1092
|
+
* 播放地址类型,可以选值为“rtm”/“flv”/“mp4”/“hls”
|
|
1093
|
+
* @notes 播放地址带后缀的则streamType非必填,否则为必填
|
|
1094
|
+
*
|
|
1095
|
+
* @type {('rtm' | 'flv' | 'mp4' | 'hls')}
|
|
1096
|
+
* @memberof IPlayerConfig
|
|
1097
|
+
*/
|
|
1098
|
+
streamType?: "rtm" | "flv" | "mp4" | "hls";
|
|
1099
|
+
/**
|
|
1100
|
+
* 右键是否可用
|
|
1101
|
+
*
|
|
1102
|
+
* @type {boolean}
|
|
1103
|
+
* @memberof IPlayerConfig
|
|
1104
|
+
*/
|
|
1105
|
+
enableContextmenu: boolean;
|
|
1106
|
+
/**
|
|
1107
|
+
* 关闭video上的阻止事件传播
|
|
1108
|
+
*
|
|
1109
|
+
* @type {boolean}
|
|
1110
|
+
* @memberof IPlayerConfig
|
|
1111
|
+
*/
|
|
1112
|
+
closeVideoStopPropagation: boolean;
|
|
1113
|
+
/**
|
|
1114
|
+
* 是否开启mp4的MSE模式,开启后采用MSE方式播放MP4,
|
|
1115
|
+
* 同时带来精确的seek加载、视频的无缝切换、流量节省等功能
|
|
1116
|
+
*
|
|
1117
|
+
* @type {boolean}
|
|
1118
|
+
* @memberof IPlayerConfig
|
|
1119
|
+
*/
|
|
1120
|
+
enableMp4MSE: boolean;
|
|
1121
|
+
/**
|
|
1122
|
+
* 播放列表
|
|
1123
|
+
* @notes url和playList必填一个,二者都传入时, url必须在playList中。
|
|
1124
|
+
*
|
|
1125
|
+
* @type {Stream[]}
|
|
1126
|
+
* @memberof IPlayerConfig
|
|
1127
|
+
*/
|
|
1128
|
+
playList?: Stream[];
|
|
1129
|
+
/**
|
|
1130
|
+
* 插件,可自行选择高级插件。
|
|
1131
|
+
* 目前支持的高级插件为: DefinitionDemotePlugin
|
|
1132
|
+
*
|
|
1133
|
+
* @type {any[]}
|
|
1134
|
+
* @memberof IPlayerConfig
|
|
1135
|
+
*/
|
|
1136
|
+
plugins?: any[];
|
|
1137
|
+
/**
|
|
1138
|
+
* 默认配置
|
|
1139
|
+
* @hidden
|
|
1140
|
+
*
|
|
1141
|
+
* @type {IDefaultConfig}
|
|
1142
|
+
* @memberof IPlayerConfig
|
|
1143
|
+
*/
|
|
1144
|
+
defaultConfig?: IDefaultConfig;
|
|
1145
|
+
/**
|
|
1146
|
+
* 设置多语言词典,可设置每个语言的多语言词典,
|
|
1147
|
+
* TODO: 这里需要补充当前默认的有哪些,还有如何替换和新增多语言
|
|
1148
|
+
* 例如:
|
|
1149
|
+
* {
|
|
1150
|
+
* zh: {
|
|
1151
|
+
* PIP: '画中画'
|
|
1152
|
+
* },
|
|
1153
|
+
* en: {
|
|
1154
|
+
* PIP: 'pip'
|
|
1155
|
+
* }
|
|
1156
|
+
* }
|
|
1157
|
+
*
|
|
1158
|
+
* @type {{ [key: string]: Object }}
|
|
1159
|
+
* @memberof IPlayerConfig
|
|
1160
|
+
*/
|
|
1161
|
+
languages?: {
|
|
1162
|
+
[key: string]: Object;
|
|
1163
|
+
};
|
|
1164
|
+
/**
|
|
1165
|
+
* @hidden
|
|
1166
|
+
*
|
|
1167
|
+
* @type {boolean}
|
|
1168
|
+
* @memberof IPlayerConfig
|
|
1169
|
+
*/
|
|
1170
|
+
isMobile?: boolean;
|
|
1171
|
+
/**
|
|
1172
|
+
* 是否启用软解
|
|
1173
|
+
* @notes 关于软解的一些性能说明参考 https://v3.h5player.bytedance.net/en/plugins/extension/xgplayer-livevideo.html#%E8%BD%AF%E8%A7%A3%E6%A8%A1%E5%9D%97-%E7%94%A8%E4%BA%8E%E6%92%AD%E6%94%BE265%E6%B5%81-hls%E3%80%81flv-%E6%88%96h5%E4%B8%8B%E9%98%B2%E5%8A%AB%E6%8C%81%E6%92%AD%E6%94%BEhls%E3%80%81flv%E6%B5%81-%E5%8F%AF%E4%BB%A5%E4%B8%8Exgplayer-hls%E3%80%81xgplayer-flv%E9%85%8D%E5%90%88%E4%BD%BF%E7%94%A8
|
|
1174
|
+
* 默认: false
|
|
1175
|
+
*
|
|
1176
|
+
* @type {boolean}
|
|
1177
|
+
* @memberof IPlayerConfig
|
|
1178
|
+
*/
|
|
1179
|
+
useSoftDecoding?: boolean;
|
|
1180
|
+
/**
|
|
1181
|
+
* 视频编码方式
|
|
1182
|
+
* 软解useSoftDecoding设置为true时,提供codec可提升软解初始效率
|
|
1183
|
+
*
|
|
1184
|
+
* @type {('h264' | 'h265')}
|
|
1185
|
+
* @memberof IPlayerConfig
|
|
1186
|
+
*/
|
|
1187
|
+
codec?: CodecType;
|
|
1188
|
+
/**
|
|
1189
|
+
* 是否开H265播放降级,即H.265硬解不支持时自动降级为软解
|
|
1190
|
+
*
|
|
1191
|
+
* @type {boolean}
|
|
1192
|
+
* @memberof IPlayerConfig
|
|
1193
|
+
*/
|
|
1194
|
+
enableH265Degrade?: boolean;
|
|
1195
|
+
/**
|
|
1196
|
+
* 资源过期时的回调函数,用来更新视频资源
|
|
1197
|
+
*
|
|
1198
|
+
* @type {(any) => Promise<IPlayerConfig>}
|
|
1199
|
+
* @memberof IPlayerConfig
|
|
1200
|
+
*/
|
|
1201
|
+
onMediaExpired?: () => Promise<IPlayerConfig>;
|
|
1202
|
+
/**
|
|
1203
|
+
* playAuthToken过期时的回调函数,用来更新playAuthToken
|
|
1204
|
+
*
|
|
1205
|
+
* @type {(any) => Promise<IPlayAuthTokenConfig>}
|
|
1206
|
+
* @memberof IPlayerConfig
|
|
1207
|
+
*/
|
|
1208
|
+
onTokenExpired?: () => Promise<IPlayAuthTokenConfig>;
|
|
1209
|
+
/**
|
|
1210
|
+
* 定期检查资源过期的周期,单位秒,默认400
|
|
1211
|
+
*
|
|
1212
|
+
* @type {boolean}
|
|
1213
|
+
* @memberof IPlayerConfig
|
|
1214
|
+
*/
|
|
1215
|
+
checkExpireInterval?: number;
|
|
1216
|
+
/**
|
|
1217
|
+
* 定期检查资源过期的方式,支持三种类型
|
|
1218
|
+
* urlExpire 根据url的过期时间判断
|
|
1219
|
+
* xhrStatus 发送资源请求,根据资源xhr状态判断
|
|
1220
|
+
* getUrlTime 根据估算的地址获取时间判断
|
|
1221
|
+
* @type {boolean}
|
|
1222
|
+
* @memberof IPlayerConfig
|
|
1223
|
+
*/
|
|
1224
|
+
expireDetectType?: Array<"xhrStatus" | "getUrlTime">;
|
|
1225
|
+
/**
|
|
1226
|
+
* 播放器报错展示配置, 可以配置播放异常时的播放器显示的异常文案、图片,以及是否提供刷新按钮等
|
|
1227
|
+
*
|
|
1228
|
+
*/
|
|
1229
|
+
sdkErrorPlugin?: ISdkErrorConfig;
|
|
1230
|
+
/**
|
|
1231
|
+
* rtm配置,配置rtm拉流参数
|
|
1232
|
+
* @notes 传入rtm流url时才生效
|
|
1233
|
+
*
|
|
1234
|
+
* @type {IRtmConfig}
|
|
1235
|
+
* @memberof IPlayerConfig
|
|
1236
|
+
*/
|
|
1237
|
+
rtm?: IRtmConfig;
|
|
1238
|
+
/**
|
|
1239
|
+
* 弹幕及面板配置,可配置弹幕的一些参数,如弹幕文字大小、透明度、展示区域等,
|
|
1240
|
+
*
|
|
1241
|
+
* @type {InitConfig}
|
|
1242
|
+
* @memberof IPlayerConfig
|
|
1243
|
+
*/
|
|
1244
|
+
DanmuPlugin?: InitConfig;
|
|
1245
|
+
/**
|
|
1246
|
+
* 清晰度自动降级配置
|
|
1247
|
+
* @notes 需要先引入DefinitionDemotePlugin插件,plugins: [window.VePlayer.DefinitionDemotePlugin]
|
|
1248
|
+
*
|
|
1249
|
+
* @type {IDefinitionDemotePlugin}
|
|
1250
|
+
* @memberof IPlayerConfig
|
|
1251
|
+
*/
|
|
1252
|
+
DefinitionDemotePlugin?: IDefinitionDemotePlugin;
|
|
1253
|
+
/**
|
|
1254
|
+
* vid播放配置项
|
|
1255
|
+
* @notes 需要业务方AppServer通过vid生成临时playAuthToken
|
|
1256
|
+
*
|
|
1257
|
+
* @type {IPlayAuthTokenConfig}
|
|
1258
|
+
* @memberof IPlayerConfig
|
|
1259
|
+
*/
|
|
1260
|
+
getVideoByToken?: IPlayAuthTokenConfig;
|
|
1261
|
+
/**
|
|
1262
|
+
* dash 播放配置项
|
|
1263
|
+
* @type {IDashPluginConfig}
|
|
1264
|
+
* @memberof IPlayerConfig
|
|
1265
|
+
*/
|
|
1266
|
+
DASHPlugin?: IDashPluginConfig;
|
|
1267
|
+
/**
|
|
1268
|
+
* hls 加密播放配置项
|
|
1269
|
+
* @type {IEncryptHlsPluginConfig}
|
|
1270
|
+
* @memberof IPlayerConfig
|
|
1271
|
+
*/
|
|
1272
|
+
EncryptHlsPlugin?: IEncryptHlsPluginConfig;
|
|
1273
|
+
/**
|
|
1274
|
+
* 质量日志配置项
|
|
1275
|
+
* @type {IVodLogOptsConfig}
|
|
1276
|
+
* @memberof IPlayerConfig
|
|
1277
|
+
*/
|
|
1278
|
+
vodLogOpts?: IVodLogOptsConfig;
|
|
1279
|
+
/**
|
|
1280
|
+
* mp4加密播放配置项
|
|
1281
|
+
* @type {IMp4EncryptPlayerConfig}
|
|
1282
|
+
* @memberof IPlayerConfig
|
|
1283
|
+
*/
|
|
1284
|
+
Mp4EncryptPlayer?: IMp4EncryptPlayerConfig;
|
|
1285
|
+
/**
|
|
1286
|
+
* 自适应码率配置项
|
|
1287
|
+
* @type {IAutoBitrateOptsConfig}
|
|
1288
|
+
* @memberof IPlayerConfig
|
|
1289
|
+
*/
|
|
1290
|
+
autoBitrateOpts?: IAutoBitrateOptsConfig;
|
|
1291
|
+
/**
|
|
1292
|
+
* 外挂字幕配置项
|
|
1293
|
+
* @type {ISubtitleConfig}
|
|
1294
|
+
* @memberof IPlayerConfig
|
|
1295
|
+
*/
|
|
1296
|
+
Subtitle?: ISubtitleConfig;
|
|
1297
|
+
/**
|
|
1298
|
+
* 记忆播放配置项
|
|
1299
|
+
* @type {IMemoryPlayConfig}
|
|
1300
|
+
* @memberof IPlayerConfig
|
|
1301
|
+
*/
|
|
1302
|
+
MemoryPlay?: IMemoryPlayConfig;
|
|
1303
|
+
}
|
|
1304
|
+
/**
|
|
1305
|
+
* 初始配置
|
|
1306
|
+
*
|
|
1307
|
+
* @export
|
|
1308
|
+
* @interface IDefaultConfig
|
|
1309
|
+
*/
|
|
1310
|
+
export interface IDefaultConfig {
|
|
1311
|
+
/**
|
|
1312
|
+
* “点播”还是“直播”
|
|
1313
|
+
*
|
|
1314
|
+
* @type {('live' | 'vod')}
|
|
1315
|
+
* @memberof IPlayerConfig
|
|
1316
|
+
*/
|
|
1317
|
+
type?: "live" | "vod";
|
|
1318
|
+
/**
|
|
1319
|
+
* 是否是直播
|
|
1320
|
+
*
|
|
1321
|
+
* @type {boolean}
|
|
1322
|
+
* @memberof IPlayerConfig
|
|
1323
|
+
*/
|
|
1324
|
+
isLive?: boolean;
|
|
1325
|
+
/**
|
|
1326
|
+
* 线路唯一key
|
|
1327
|
+
*
|
|
1328
|
+
* @type {(number | string)}
|
|
1329
|
+
* @memberof Stream
|
|
1330
|
+
*/
|
|
1331
|
+
lineId?: number | string;
|
|
1332
|
+
/**
|
|
1333
|
+
* 清晰度选择
|
|
1334
|
+
*
|
|
1335
|
+
* @type {string}
|
|
1336
|
+
* @memberof Stream
|
|
1337
|
+
*/
|
|
1338
|
+
definition?: string;
|
|
1339
|
+
/**
|
|
1340
|
+
* 开始播放时间
|
|
1341
|
+
*
|
|
1342
|
+
* @type {number}
|
|
1343
|
+
* @memberof IDefaultConfig
|
|
1344
|
+
*/
|
|
1345
|
+
startTime?: number;
|
|
1346
|
+
/**
|
|
1347
|
+
* 音量
|
|
1348
|
+
*
|
|
1349
|
+
* @type {number}
|
|
1350
|
+
* @memberof IDefaultConfig
|
|
1351
|
+
*/
|
|
1352
|
+
volume?: number;
|
|
1353
|
+
/**
|
|
1354
|
+
* 弹幕插件配置
|
|
1355
|
+
*
|
|
1356
|
+
* @type {*}
|
|
1357
|
+
* @memberof IDefaultConfig
|
|
1358
|
+
*/
|
|
1359
|
+
DanmuPlugin?: any;
|
|
1360
|
+
/**
|
|
1361
|
+
* 字幕插件配置
|
|
1362
|
+
*
|
|
1363
|
+
* @type {*}
|
|
1364
|
+
* @memberof IDefaultConfig
|
|
1365
|
+
*/
|
|
1366
|
+
LiveSubtitlesIconPlugin?: any;
|
|
1367
|
+
}
|
|
1368
|
+
/**
|
|
1369
|
+
* vid播放配置信息
|
|
1370
|
+
*
|
|
1371
|
+
* @detail Options
|
|
1372
|
+
* @description PlayAuthToken获取视频信息配置
|
|
1373
|
+
* @export
|
|
1374
|
+
* @interface IPlayAuthTokenConfig
|
|
1375
|
+
*/
|
|
1376
|
+
export interface IPlayAuthTokenConfig {
|
|
1377
|
+
/**
|
|
1378
|
+
* 服务端生成的临时playAuthToken
|
|
1379
|
+
*
|
|
1380
|
+
* @type {string}
|
|
1381
|
+
* @memberof IPlayAuthTokenConfig
|
|
1382
|
+
*/
|
|
1383
|
+
playAuthToken: string;
|
|
1384
|
+
/**
|
|
1385
|
+
* 求地址接口域名
|
|
1386
|
+
*
|
|
1387
|
+
* @notes 默认为`//vod.volcengineapi.com`
|
|
1388
|
+
* @type {string}
|
|
1389
|
+
* @memberof IPlayAuthTokenConfig
|
|
1390
|
+
*/
|
|
1391
|
+
playDomain?: string;
|
|
1392
|
+
/**
|
|
1393
|
+
* 是否启用控制台设置的封面图
|
|
1394
|
+
* @type {boolean}
|
|
1395
|
+
* @memberof IPlayAuthTokenConfig
|
|
1396
|
+
*/
|
|
1397
|
+
needPoster?: boolean;
|
|
1398
|
+
/**
|
|
1399
|
+
* 是否启用控制台设置的雪碧图
|
|
1400
|
+
* @type {boolean}
|
|
1401
|
+
* @memberof IPlayAuthTokenConfig
|
|
1402
|
+
*/
|
|
1403
|
+
needThumbs?: boolean;
|
|
1404
|
+
/**
|
|
1405
|
+
* 是否启用控制台设置的蒙版弹幕
|
|
1406
|
+
* @type {boolean}
|
|
1407
|
+
* @memberof IPlayAuthTokenConfig
|
|
1408
|
+
*/
|
|
1409
|
+
needBarrageMask?: boolean;
|
|
1410
|
+
/**
|
|
1411
|
+
* hls标准加密播放所用的keyToken
|
|
1412
|
+
* @type {boolean}
|
|
1413
|
+
* @memberof IPlayAuthTokenConfig
|
|
1414
|
+
*/
|
|
1415
|
+
keyToken?: string;
|
|
1416
|
+
/**
|
|
1417
|
+
* 密钥请求域名
|
|
1418
|
+
* @hidden
|
|
1419
|
+
* @type {string}
|
|
1420
|
+
* @memberof IPlayAuthTokenConfig
|
|
1421
|
+
*/
|
|
1422
|
+
keyDomain?: string;
|
|
1423
|
+
/**
|
|
1424
|
+
* 获取key方式,默认'TOP'
|
|
1425
|
+
* @hidden
|
|
1426
|
+
* @type {string}
|
|
1427
|
+
* @memberof IPlayAuthTokenConfig
|
|
1428
|
+
*/
|
|
1429
|
+
getKeyType?: string;
|
|
1430
|
+
/**
|
|
1431
|
+
* 可携带aid等透传参数,如
|
|
1432
|
+
* {aid: 1234},以playAuthToken下发的参数的优先级最高。
|
|
1433
|
+
* 具体可传参数见{@link https://www.volcengine.com/docs/4/65659 签发 PlayAuthToken}
|
|
1434
|
+
*
|
|
1435
|
+
* @type {Record<string, number | string | boolean>}
|
|
1436
|
+
* @memberof IPlayAuthTokenConfig
|
|
1437
|
+
*/
|
|
1438
|
+
reqParams?: Record<string, number | string | boolean>;
|
|
1439
|
+
/**
|
|
1440
|
+
* 定义清晰度的映射
|
|
1441
|
+
*
|
|
1442
|
+
* @example 如:
|
|
1443
|
+
* ``` javascript
|
|
1444
|
+
* {
|
|
1445
|
+
* '480p': '标清',
|
|
1446
|
+
* '720p': '高清'
|
|
1447
|
+
* }
|
|
1448
|
+
* ```
|
|
1449
|
+
* 或
|
|
1450
|
+
* ``` javascript
|
|
1451
|
+
* {
|
|
1452
|
+
* '480p': {
|
|
1453
|
+
* definition: 'hd',
|
|
1454
|
+
* definitionTextKey: 'HD'
|
|
1455
|
+
* },
|
|
1456
|
+
* '720p': {
|
|
1457
|
+
* definition: 'uhd',
|
|
1458
|
+
* definitionTextKey: 'UHD'
|
|
1459
|
+
* }
|
|
1460
|
+
* }
|
|
1461
|
+
* ```
|
|
1462
|
+
* `definitionTextKey`用来指定多语言的key
|
|
1463
|
+
* @type {Record<string, string | definitionItem>}
|
|
1464
|
+
* @memberof IPlayAuthTokenConfig
|
|
1465
|
+
*/
|
|
1466
|
+
definitionMap?: Record<string, string | definitionItem>;
|
|
1467
|
+
}
|
|
1468
|
+
/**
|
|
1469
|
+
* 清晰度定义
|
|
1470
|
+
*
|
|
1471
|
+
* @detail Options
|
|
1472
|
+
* @export
|
|
1473
|
+
* @interface definitionItem
|
|
1474
|
+
*/
|
|
1475
|
+
export interface definitionItem {
|
|
1476
|
+
/**
|
|
1477
|
+
* 清晰度
|
|
1478
|
+
*
|
|
1479
|
+
* @type {string}
|
|
1480
|
+
* @memberof definitionItem
|
|
1481
|
+
*/
|
|
1482
|
+
definition?: string;
|
|
1483
|
+
/**
|
|
1484
|
+
* 清晰度多语言key
|
|
1485
|
+
*
|
|
1486
|
+
* @type {string}
|
|
1487
|
+
* @memberof definitionItem
|
|
1488
|
+
*/
|
|
1489
|
+
definitionTextKey?: string;
|
|
1490
|
+
}
|
|
1491
|
+
export interface IAutoBitrateOptsConfig {
|
|
1492
|
+
/**
|
|
1493
|
+
* 是否开启功能,默认为false
|
|
1494
|
+
*
|
|
1495
|
+
* @type {boolean}
|
|
1496
|
+
* @memberof IAutoBitrateOptsConfig
|
|
1497
|
+
*/
|
|
1498
|
+
isOpenAutoDefi?: boolean;
|
|
1499
|
+
/**
|
|
1500
|
+
* 自动切换清晰度对应显示文案
|
|
1501
|
+
*
|
|
1502
|
+
* @type {string}
|
|
1503
|
+
* @memberof IAutoBitrateOptsConfig
|
|
1504
|
+
*/
|
|
1505
|
+
autoDefiText?: string;
|
|
1506
|
+
/**
|
|
1507
|
+
* 起播是否调整到自动切换, 默认为false
|
|
1508
|
+
*
|
|
1509
|
+
* @type {boolean}
|
|
1510
|
+
* @memberof IAutoBitrateOptsConfig
|
|
1511
|
+
*/
|
|
1512
|
+
isPlayAutoDefi?: boolean;
|
|
1513
|
+
/**
|
|
1514
|
+
* 调用算法频率
|
|
1515
|
+
*
|
|
1516
|
+
* @type {boolean}
|
|
1517
|
+
* @memberof IAutoBitrateOptsConfig
|
|
1518
|
+
*/
|
|
1519
|
+
interval?: number;
|
|
1520
|
+
/**
|
|
1521
|
+
* 多久后算消费视频,单位秒
|
|
1522
|
+
*
|
|
1523
|
+
* @type {number}
|
|
1524
|
+
* @memberof IAutoBitrateOptsConfig
|
|
1525
|
+
*/
|
|
1526
|
+
noStallCheckTime?: number;
|
|
1527
|
+
/**
|
|
1528
|
+
* 算法 方法选择见文档,默认使用31即可,目前31策略卡顿收益很高
|
|
1529
|
+
*
|
|
1530
|
+
* @type {number}
|
|
1531
|
+
* @memberof IAutoBitrateOptsConfig
|
|
1532
|
+
*/
|
|
1533
|
+
method?: number;
|
|
1534
|
+
/**
|
|
1535
|
+
* 算法模块, CDN方式为window.DashAbralgo
|
|
1536
|
+
*
|
|
1537
|
+
* @type {any}
|
|
1538
|
+
* @memberof IAutoBitrateOptsConfig
|
|
1539
|
+
*/
|
|
1540
|
+
module?: any;
|
|
1541
|
+
}
|
|
1542
|
+
/**
|
|
1543
|
+
* 初始配置
|
|
1544
|
+
*
|
|
1545
|
+
* @export
|
|
1546
|
+
* @interface IMemoryPlayConfig
|
|
1547
|
+
*/
|
|
1548
|
+
export interface IMemoryPlayConfig {
|
|
1549
|
+
/**
|
|
1550
|
+
* 存储标识id
|
|
1551
|
+
*
|
|
1552
|
+
* @type {number | string}
|
|
1553
|
+
* @memberof IMemoryPlayConfig
|
|
1554
|
+
*/
|
|
1555
|
+
memoryId: number | string;
|
|
1556
|
+
/**
|
|
1557
|
+
* 设置时间函数
|
|
1558
|
+
*
|
|
1559
|
+
* @type {(id: number | string, time: number) => unknown}
|
|
1560
|
+
* @memberof IMemoryPlayConfig
|
|
1561
|
+
*/
|
|
1562
|
+
saveTime: (id: number | string, time: number) => unknown;
|
|
1563
|
+
/**
|
|
1564
|
+
* 获取最后一次播放时间函数
|
|
1565
|
+
*
|
|
1566
|
+
* @type {(id: number | string) => number | Promise<number>}
|
|
1567
|
+
* @memberof IMemoryPlayConfig
|
|
1568
|
+
*/
|
|
1569
|
+
getTime: (id: number | string) => number | Promise<number>;
|
|
1570
|
+
}
|
|
1571
|
+
declare class PlayerData {
|
|
1572
|
+
id?: string;
|
|
1573
|
+
root?: HTMLElement;
|
|
1574
|
+
configs: any;
|
|
1575
|
+
type: string;
|
|
1576
|
+
isLive: boolean;
|
|
1577
|
+
options: any;
|
|
1578
|
+
isMobile: boolean;
|
|
1579
|
+
playList: Stream[];
|
|
1580
|
+
plugins: any[];
|
|
1581
|
+
openSoftDecoding: boolean;
|
|
1582
|
+
defaultConfig: IDefaultConfig | undefined;
|
|
1583
|
+
isHitDefault: boolean;
|
|
1584
|
+
codec?: CodecType;
|
|
1585
|
+
enableH265Degrade: boolean;
|
|
1586
|
+
languageData: {
|
|
1587
|
+
extraLangList: IXGI18nText[];
|
|
1588
|
+
extendLangList: IXGI18nText[];
|
|
1589
|
+
};
|
|
1590
|
+
current: Current;
|
|
1591
|
+
checkExpireInterval: number;
|
|
1592
|
+
expireDetectType: Array<"xhrStatus" | "urlExpire" | "getUrlTime">;
|
|
1593
|
+
onMediaExpired: () => Promise<IPlayerConfig>;
|
|
1594
|
+
onTokenExpired: () => Promise<IPlayAuthTokenConfig>;
|
|
1595
|
+
constructor(configs: IPlayerConfig);
|
|
1596
|
+
initPlayData(configs: any): void;
|
|
1597
|
+
initPlaylistAndGetCurrent(configs: IPlayerConfig): any;
|
|
1598
|
+
isCurrentH265(): boolean;
|
|
1599
|
+
getCurrentByDefaultConfig(): Stream;
|
|
1600
|
+
initCurrent(currentStreams: any): void;
|
|
1601
|
+
initI18nData(languages: any): {
|
|
1602
|
+
extraLangList: any[];
|
|
1603
|
+
extendLangList: any[];
|
|
1604
|
+
};
|
|
1605
|
+
/**
|
|
1606
|
+
* @description: 获取当前直播url
|
|
1607
|
+
*/
|
|
1608
|
+
getCurrentUrl(): string;
|
|
1609
|
+
/**
|
|
1610
|
+
* @description: 获取当前的streamType
|
|
1611
|
+
*/
|
|
1612
|
+
getCurrentStreamType(): any;
|
|
1613
|
+
/**
|
|
1614
|
+
* @description: 获取满足当前直播条件的流
|
|
1615
|
+
*/
|
|
1616
|
+
getCurrentStreams(): Stream[];
|
|
1617
|
+
/**
|
|
1618
|
+
* @description: 获取根据线路ID去重的流,用于获取有几个线路
|
|
1619
|
+
*/
|
|
1620
|
+
getLineList(): any;
|
|
1621
|
+
/**
|
|
1622
|
+
* @description: 根据线路ID获取符合条件的流
|
|
1623
|
+
* @param {number} lineId
|
|
1624
|
+
*/
|
|
1625
|
+
getLineListByLineId(lineId: number | string): Stream[];
|
|
1626
|
+
/**
|
|
1627
|
+
* @description: 根据线路ID获取清晰度list,用于获取某个线路下有几个清晰度
|
|
1628
|
+
* @param {number} lineId
|
|
1629
|
+
*/
|
|
1630
|
+
getDefinitionListByLineId(lineId: number | string): any;
|
|
1631
|
+
/**
|
|
1632
|
+
* @description: 根据条件筛选符合条件的流list
|
|
1633
|
+
* @param {Condition} condition
|
|
1634
|
+
*/
|
|
1635
|
+
getUrlList(condition: Condition): Stream[];
|
|
1636
|
+
/**
|
|
1637
|
+
* @description: 获取当期清晰的上一级清晰度或下一级清晰度
|
|
1638
|
+
* @param {boolean} isDown
|
|
1639
|
+
*/
|
|
1640
|
+
getNextDefinition(isDown: boolean, demotePriority: any): Stream[];
|
|
1641
|
+
}
|
|
1642
|
+
declare class VePlayer {
|
|
1643
|
+
/**
|
|
1644
|
+
* 播放相关配置数据
|
|
1645
|
+
* @hidden
|
|
1646
|
+
*
|
|
1647
|
+
* @type {PlayerData}
|
|
1648
|
+
* @memberof VePlayer
|
|
1649
|
+
*/
|
|
1650
|
+
playerData: PlayerData;
|
|
1651
|
+
/**
|
|
1652
|
+
* xgplayer实例
|
|
1653
|
+
* @hidden
|
|
1654
|
+
* @type {*}
|
|
1655
|
+
* @memberof VePlayer
|
|
1656
|
+
*/
|
|
1657
|
+
player: any;
|
|
1658
|
+
/**
|
|
1659
|
+
* @hidden
|
|
1660
|
+
*
|
|
1661
|
+
* @type {*}
|
|
1662
|
+
* @memberof VePlayer
|
|
1663
|
+
*/
|
|
1664
|
+
mountingDom: any;
|
|
1665
|
+
/**
|
|
1666
|
+
* @hidden
|
|
1667
|
+
*
|
|
1668
|
+
* @type {*}
|
|
1669
|
+
* @memberof VePlayer
|
|
1670
|
+
*/
|
|
1671
|
+
playerContainer: any;
|
|
1672
|
+
/**
|
|
1673
|
+
* @hidden
|
|
1674
|
+
*
|
|
1675
|
+
* @type {*}
|
|
1676
|
+
* @memberof VePlayer
|
|
1677
|
+
*/
|
|
1678
|
+
mobilePanel: any;
|
|
1679
|
+
/**
|
|
1680
|
+
*
|
|
1681
|
+
* @private
|
|
1682
|
+
* @type {*}
|
|
1683
|
+
* @memberof VePlayer
|
|
1684
|
+
*/
|
|
1685
|
+
private _emitter;
|
|
1686
|
+
/**
|
|
1687
|
+
*
|
|
1688
|
+
*
|
|
1689
|
+
* @private
|
|
1690
|
+
* @memberof VePlayer
|
|
1691
|
+
*/
|
|
1692
|
+
private _isFirstCreated;
|
|
1693
|
+
/**
|
|
1694
|
+
* @hidden
|
|
1695
|
+
*
|
|
1696
|
+
* @type {*}
|
|
1697
|
+
* @memberof VePlayer
|
|
1698
|
+
*/
|
|
1699
|
+
sdkPlugins: any[];
|
|
1700
|
+
/**
|
|
1701
|
+
* @hidden
|
|
1702
|
+
*
|
|
1703
|
+
* @type {*}
|
|
1704
|
+
* @memberof VePlayer
|
|
1705
|
+
*/
|
|
1706
|
+
_sdkPlugins: any;
|
|
1707
|
+
/**
|
|
1708
|
+
* @hidden
|
|
1709
|
+
*
|
|
1710
|
+
* @type {*}
|
|
1711
|
+
* @memberof VePlayer
|
|
1712
|
+
*/
|
|
1713
|
+
private checkExpireTimer;
|
|
1714
|
+
/**
|
|
1715
|
+
* @hidden
|
|
1716
|
+
*
|
|
1717
|
+
* @type {*}
|
|
1718
|
+
* @memberof VePlayer
|
|
1719
|
+
*/
|
|
1720
|
+
private _playOriginalUrl;
|
|
1721
|
+
/**
|
|
1722
|
+
* @hidden
|
|
1723
|
+
* 过期次数
|
|
1724
|
+
* @type {*}
|
|
1725
|
+
* @memberof VePlayer
|
|
1726
|
+
*/
|
|
1727
|
+
private expireCount;
|
|
1728
|
+
/**
|
|
1729
|
+
* @hidden
|
|
1730
|
+
* 获取url的时间
|
|
1731
|
+
* @type {*}
|
|
1732
|
+
* @memberof VePlayer
|
|
1733
|
+
*/
|
|
1734
|
+
private getUrlTime;
|
|
1735
|
+
/**
|
|
1736
|
+
* @hidden
|
|
1737
|
+
* 延迟触发但错误
|
|
1738
|
+
* @type {*}
|
|
1739
|
+
* @memberof VePlayer
|
|
1740
|
+
*/
|
|
1741
|
+
private delayError;
|
|
1742
|
+
private isFirstEmitted;
|
|
1743
|
+
constructor(configs: IPlayerConfig);
|
|
1744
|
+
/**
|
|
1745
|
+
*
|
|
1746
|
+
*
|
|
1747
|
+
* @private
|
|
1748
|
+
* @param {IPlayerConfig} configs
|
|
1749
|
+
* @memberof VePlayer
|
|
1750
|
+
*/
|
|
1751
|
+
private _init;
|
|
1752
|
+
/**
|
|
1753
|
+
* @hidden
|
|
1754
|
+
* @description 初始化并注册sdk插件(非西瓜插件)
|
|
1755
|
+
* @memberof VePlayer
|
|
1756
|
+
*/
|
|
1757
|
+
_initSdkPlugins(): void;
|
|
1758
|
+
/**
|
|
1759
|
+
* @hidden
|
|
1760
|
+
* @description 初始化过期检测
|
|
1761
|
+
* @memberof VePlayer
|
|
1762
|
+
*/
|
|
1763
|
+
initCheckExpire(): void;
|
|
1764
|
+
/**
|
|
1765
|
+
* @hidden
|
|
1766
|
+
* @description 循环执行过期检测
|
|
1767
|
+
* @memberof VePlayer
|
|
1768
|
+
*/
|
|
1769
|
+
onRepeat(): void;
|
|
1770
|
+
/**
|
|
1771
|
+
* @hidden
|
|
1772
|
+
* @description 触发过期事件
|
|
1773
|
+
* @memberof VePlayer
|
|
1774
|
+
*/
|
|
1775
|
+
emitExpireEvent(): void;
|
|
1776
|
+
/**
|
|
1777
|
+
* @hidden
|
|
1778
|
+
* @description 地址获取时间
|
|
1779
|
+
* @memberof VePlayer
|
|
1780
|
+
*/
|
|
1781
|
+
getUrlTimestamp(url: string): void;
|
|
1782
|
+
/**
|
|
1783
|
+
* @description 监听sdk事件
|
|
1784
|
+
*
|
|
1785
|
+
* @param {string} action
|
|
1786
|
+
* @param {(...args: any[]) => void} func
|
|
1787
|
+
* @memberof VePlayer
|
|
1788
|
+
*/
|
|
1789
|
+
on(action: string, func: (...args: any[]) => void): void;
|
|
1790
|
+
/**
|
|
1791
|
+
* @description 触发sdk事件
|
|
1792
|
+
*
|
|
1793
|
+
* @param {string} action
|
|
1794
|
+
* @param {*} [payload]
|
|
1795
|
+
* @memberof VePlayer
|
|
1796
|
+
*/
|
|
1797
|
+
emit(action: string, payload?: any): void;
|
|
1798
|
+
/**
|
|
1799
|
+
* 监听sdk事件,事件处理函数只执行一次
|
|
1800
|
+
*
|
|
1801
|
+
* @param {string} action
|
|
1802
|
+
* @param {(...args: any[]) => void} func
|
|
1803
|
+
* @memberof VePlayer
|
|
1804
|
+
*/
|
|
1805
|
+
once(action: string, func: (...args: any[]) => void): void;
|
|
1806
|
+
/**
|
|
1807
|
+
* 解绑事件监听
|
|
1808
|
+
*
|
|
1809
|
+
* @param {string} action
|
|
1810
|
+
* @param {(...args: any[]) => void} func
|
|
1811
|
+
* @memberof VePlayer
|
|
1812
|
+
*/
|
|
1813
|
+
off(action: string, func: (...args: any[]) => void): void;
|
|
1814
|
+
/**
|
|
1815
|
+
* @hidden
|
|
1816
|
+
*
|
|
1817
|
+
* @memberof VePlayer
|
|
1818
|
+
*/
|
|
1819
|
+
renderDom(): void;
|
|
1820
|
+
/**
|
|
1821
|
+
* @hidden
|
|
1822
|
+
*
|
|
1823
|
+
* @return {*}
|
|
1824
|
+
* @memberof VePlayer
|
|
1825
|
+
*/
|
|
1826
|
+
renderPoster(): void;
|
|
1827
|
+
/**
|
|
1828
|
+
* @hidden
|
|
1829
|
+
*
|
|
1830
|
+
* @return {*}
|
|
1831
|
+
* @memberof VePlayer
|
|
1832
|
+
*/
|
|
1833
|
+
createPlayer(): Promise<any>;
|
|
1834
|
+
/**
|
|
1835
|
+
* @hidden
|
|
1836
|
+
*
|
|
1837
|
+
* @param {*} finalOptions
|
|
1838
|
+
* @param {IEncryptHlsPluginConfig} encryptHlsPluginConfig
|
|
1839
|
+
* @return {*}
|
|
1840
|
+
* @memberof VePlayer
|
|
1841
|
+
*/
|
|
1842
|
+
setHlsEncryptConfig(finalOptions: IPlayerConfig, encryptHlsPluginConfig: IEncryptHlsPluginConfig): void;
|
|
1843
|
+
/**
|
|
1844
|
+
* @hidden
|
|
1845
|
+
*
|
|
1846
|
+
* @param {string} url 地址
|
|
1847
|
+
* @memberof VePlayer
|
|
1848
|
+
*/
|
|
1849
|
+
detectCodec(url: string): Promise<void>;
|
|
1850
|
+
/**
|
|
1851
|
+
* @hidden
|
|
1852
|
+
*
|
|
1853
|
+
* @param {*} options
|
|
1854
|
+
* @return {*}
|
|
1855
|
+
* @memberof VePlayer
|
|
1856
|
+
*/
|
|
1857
|
+
setDefaultConfigOptions(options: any): void;
|
|
1858
|
+
/**
|
|
1859
|
+
* 获取当前播放视频数据
|
|
1860
|
+
*
|
|
1861
|
+
* @return {any}
|
|
1862
|
+
* @memberof VePlayer
|
|
1863
|
+
*/
|
|
1864
|
+
getCurrentPlayerConfig(): {
|
|
1865
|
+
type?: "live" | "vod";
|
|
1866
|
+
isLive?: boolean;
|
|
1867
|
+
lineId?: string | number;
|
|
1868
|
+
definition?: string;
|
|
1869
|
+
startTime?: number;
|
|
1870
|
+
volume?: number;
|
|
1871
|
+
DanmuPlugin?: any;
|
|
1872
|
+
LiveSubtitlesIconPlugin?: any;
|
|
1873
|
+
};
|
|
1874
|
+
/**
|
|
1875
|
+
*
|
|
1876
|
+
* @private
|
|
1877
|
+
* @return {*}
|
|
1878
|
+
* @memberof VePlayer
|
|
1879
|
+
*/
|
|
1880
|
+
private _analyzeExtendPlugins;
|
|
1881
|
+
/**
|
|
1882
|
+
* @hidden
|
|
1883
|
+
*
|
|
1884
|
+
* @memberof VePlayer
|
|
1885
|
+
*/
|
|
1886
|
+
beforePlayerCreate(): Promise<void>;
|
|
1887
|
+
/**
|
|
1888
|
+
* @hidden
|
|
1889
|
+
*
|
|
1890
|
+
* @memberof VePlayer
|
|
1891
|
+
*/
|
|
1892
|
+
afterPlayerCreate(): void;
|
|
1893
|
+
/**
|
|
1894
|
+
* @hidden
|
|
1895
|
+
*
|
|
1896
|
+
* @memberof VePlayer
|
|
1897
|
+
*/
|
|
1898
|
+
emitDelayError(): void;
|
|
1899
|
+
/**
|
|
1900
|
+
* @hidden
|
|
1901
|
+
*
|
|
1902
|
+
* @memberof VePlayer
|
|
1903
|
+
*/
|
|
1904
|
+
_setPlayerInfo(): void;
|
|
1905
|
+
/**
|
|
1906
|
+
*
|
|
1907
|
+
*
|
|
1908
|
+
* @private
|
|
1909
|
+
* @param {boolean} isMobile
|
|
1910
|
+
* @memberof VePlayer
|
|
1911
|
+
*/
|
|
1912
|
+
private _mountingPlayerPanel;
|
|
1913
|
+
/**
|
|
1914
|
+
*
|
|
1915
|
+
*
|
|
1916
|
+
* @private
|
|
1917
|
+
* @return {*}
|
|
1918
|
+
* @memberof VePlayer
|
|
1919
|
+
*/
|
|
1920
|
+
private _bindPlayerEvents;
|
|
1921
|
+
/**
|
|
1922
|
+
* @private
|
|
1923
|
+
* @return {*}
|
|
1924
|
+
* @memberof VePlayer
|
|
1925
|
+
*/
|
|
1926
|
+
private onMediaExpiredAction;
|
|
1927
|
+
/**
|
|
1928
|
+
* @hidden
|
|
1929
|
+
*
|
|
1930
|
+
* @memberof VePlayer
|
|
1931
|
+
*/
|
|
1932
|
+
private onTokenExpiredAction;
|
|
1933
|
+
/**
|
|
1934
|
+
*
|
|
1935
|
+
*
|
|
1936
|
+
* @private
|
|
1937
|
+
* @memberof VePlayer
|
|
1938
|
+
*/
|
|
1939
|
+
private _bindSdkEvents;
|
|
1940
|
+
/**
|
|
1941
|
+
* @hidden
|
|
1942
|
+
*
|
|
1943
|
+
* @memberof VePlayer
|
|
1944
|
+
*/
|
|
1945
|
+
private _mountingExtendMethods;
|
|
1946
|
+
/**
|
|
1947
|
+
*
|
|
1948
|
+
*
|
|
1949
|
+
* @private
|
|
1950
|
+
* @return {*}
|
|
1951
|
+
* @memberof VePlayer
|
|
1952
|
+
*/
|
|
1953
|
+
private _offPlayerEvents;
|
|
1954
|
+
/**
|
|
1955
|
+
* @hidden
|
|
1956
|
+
* 切换插件展示
|
|
1957
|
+
*
|
|
1958
|
+
* @param {*} pluginName
|
|
1959
|
+
* @param {*} IsShow
|
|
1960
|
+
* @return {*}
|
|
1961
|
+
* @memberof VePlayer
|
|
1962
|
+
*/
|
|
1963
|
+
changePluginsIcon(pluginName: any, IsShow: any): void;
|
|
1964
|
+
/**
|
|
1965
|
+
* @hidden
|
|
1966
|
+
*
|
|
1967
|
+
* @description 对外提供获取SDK插件实例的方法
|
|
1968
|
+
* @param { string } name
|
|
1969
|
+
* @return {*}
|
|
1970
|
+
* @memberof VePlayer
|
|
1971
|
+
*/
|
|
1972
|
+
getSdkPlugin(name: any): any;
|
|
1973
|
+
/**
|
|
1974
|
+
* @description 更换playAuthToken的方法
|
|
1975
|
+
* @note 这里指同一个视频切换视频源,不能用来切换不同类型的视频
|
|
1976
|
+
* @param { IPlayAuthTokenConfig } config
|
|
1977
|
+
* @param { boolean } isNewVideo 是否是新视频,默认false,如果是true,则起播时间为0
|
|
1978
|
+
* @memberof VePlayer
|
|
1979
|
+
*/
|
|
1980
|
+
switchAuthToken(config: IPlayAuthTokenConfig, isNewVideo?: boolean): Promise<void>;
|
|
1981
|
+
/**
|
|
1982
|
+
* @description 更新playAuthToken的方法
|
|
1983
|
+
* @param { IPlayAuthTokenConfig } config
|
|
1984
|
+
* @memberof VePlayer
|
|
1985
|
+
*/
|
|
1986
|
+
updateAuthToken(config: IPlayAuthTokenConfig): Promise<void>;
|
|
1987
|
+
/**
|
|
1988
|
+
* @description 返回当前视频的地址
|
|
1989
|
+
* @memberof VePlayer
|
|
1990
|
+
*/
|
|
1991
|
+
get src(): any;
|
|
1992
|
+
/**
|
|
1993
|
+
* @description 设置当前视频的地址
|
|
1994
|
+
* @note 会重新拉取新的视频,从0开始起播
|
|
1995
|
+
* @memberof VePlayer
|
|
1996
|
+
*/
|
|
1997
|
+
set src(url: any);
|
|
1998
|
+
/**
|
|
1999
|
+
* 切换视频url
|
|
2000
|
+
* @param {string} url 同一个视频,切换视频地址
|
|
2001
|
+
* @note 切换后从切换前的时间点继续播放
|
|
2002
|
+
* @return {Promise<void>}
|
|
2003
|
+
* @memberof VePlayer
|
|
2004
|
+
*/
|
|
2005
|
+
switchURL(url: string): Promise<void>;
|
|
2006
|
+
/**
|
|
2007
|
+
* 重建播放下一个
|
|
2008
|
+
*
|
|
2009
|
+
* @param {playerConfig} config
|
|
2010
|
+
* @memberof VePlayer
|
|
2011
|
+
*/
|
|
2012
|
+
next(config: IPlayerConfig): Promise<void>;
|
|
2013
|
+
/**
|
|
2014
|
+
* 切换视频源,主要用于在视频过期时更新视频源
|
|
2015
|
+
*
|
|
2016
|
+
* @param {IPlayerConfig} config
|
|
2017
|
+
* @return{Promise<any>}
|
|
2018
|
+
* @memberof VePlayer
|
|
2019
|
+
*/
|
|
2020
|
+
playNext(config: IPlayerConfig): Promise<any>;
|
|
2021
|
+
/**
|
|
2022
|
+
* @hidden
|
|
2023
|
+
*
|
|
2024
|
+
* @return {*}
|
|
2025
|
+
* @memberof VePlayer
|
|
2026
|
+
*/
|
|
2027
|
+
resetUrlState(url: any): void;
|
|
2028
|
+
/**
|
|
2029
|
+
* 销毁xgplayer实例
|
|
2030
|
+
*
|
|
2031
|
+
* @private
|
|
2032
|
+
* @memberof VePlayer
|
|
2033
|
+
*/
|
|
2034
|
+
private _destroyPlayer;
|
|
2035
|
+
/**
|
|
2036
|
+
* @hidden
|
|
2037
|
+
*
|
|
2038
|
+
* @return {*}
|
|
2039
|
+
* @memberof VePlayer
|
|
2040
|
+
*/
|
|
2041
|
+
getPlayerInstance(): any;
|
|
2042
|
+
/**
|
|
2043
|
+
* @private
|
|
2044
|
+
*
|
|
2045
|
+
* @return {*}
|
|
2046
|
+
* @memberof VePlayer
|
|
2047
|
+
*/
|
|
2048
|
+
getSoftDecodingOption(isOpenSoftDecoding: boolean, url: string, type: string): Promise<{
|
|
2049
|
+
mediaType: string;
|
|
2050
|
+
innerDegrade: number;
|
|
2051
|
+
codecType: string;
|
|
2052
|
+
} | {
|
|
2053
|
+
mediaType?: undefined;
|
|
2054
|
+
innerDegrade?: undefined;
|
|
2055
|
+
codecType?: undefined;
|
|
2056
|
+
}>;
|
|
2057
|
+
/**
|
|
2058
|
+
* @hidden
|
|
2059
|
+
*
|
|
2060
|
+
* @description 获取h265软解播放时的播放列表
|
|
2061
|
+
* @memberof VePlayer
|
|
2062
|
+
*/
|
|
2063
|
+
setH265SoftPlayList(): void;
|
|
2064
|
+
/**
|
|
2065
|
+
* 初始化多语言词典
|
|
2066
|
+
*
|
|
2067
|
+
* @param {*} languages
|
|
2068
|
+
* @memberof VePlayer
|
|
2069
|
+
*/
|
|
2070
|
+
private _initI18N;
|
|
2071
|
+
/**
|
|
2072
|
+
* 销毁当前示例
|
|
2073
|
+
*
|
|
2074
|
+
* @memberof VePlayer
|
|
2075
|
+
*/
|
|
2076
|
+
destroy(): Promise<void>;
|
|
2077
|
+
}
|
|
2078
|
+
export declare function getI18N(): typeof I18N;
|
|
2079
|
+
export interface ISubTitles {
|
|
2080
|
+
timestamp: number;
|
|
2081
|
+
text: string;
|
|
2082
|
+
duration: number;
|
|
2083
|
+
url: string;
|
|
2084
|
+
lang: string;
|
|
2085
|
+
delimiter?: string;
|
|
2086
|
+
textArr?: string[];
|
|
2087
|
+
wordpiece?: any[];
|
|
2088
|
+
}
|
|
2089
|
+
export interface ISubTitlesState {
|
|
2090
|
+
showLang: string;
|
|
2091
|
+
subTitleList: ISubTitles[];
|
|
2092
|
+
rtmpDtsGap: number;
|
|
2093
|
+
showingSubtitle: string;
|
|
2094
|
+
currentSub: any;
|
|
2095
|
+
dtsBase: number;
|
|
2096
|
+
}
|
|
2097
|
+
declare class LiveSubTitlesPlugin extends Plugin {
|
|
2098
|
+
static get pluginName(): string;
|
|
2099
|
+
static get defaultConfig(): {
|
|
2100
|
+
position: string;
|
|
2101
|
+
showLang: string;
|
|
2102
|
+
};
|
|
2103
|
+
constructor(configs: any);
|
|
2104
|
+
state: ISubTitlesState;
|
|
2105
|
+
clearLineTimer: any;
|
|
2106
|
+
showTimer: any;
|
|
2107
|
+
beforePlayerInit(): void;
|
|
2108
|
+
onPause(): void;
|
|
2109
|
+
onPlay(): void;
|
|
2110
|
+
destroy(): void;
|
|
2111
|
+
clearRtmpDtsGap(): void;
|
|
2112
|
+
clearSubTitle(isClearScreen: boolean): void;
|
|
2113
|
+
getIsSoft(): boolean;
|
|
2114
|
+
handleVideoTimeupdate(data: any): void;
|
|
2115
|
+
renderSubtitle(subTitle: ISubTitles): void;
|
|
2116
|
+
handleSEIParsed(sei: any, originPts?: any): void;
|
|
2117
|
+
insertSubTitle(...subTitles: ISubTitles[]): void;
|
|
2118
|
+
setCurrentLang(lang: string): void;
|
|
2119
|
+
adjustSubTitleTime(time: number): number;
|
|
2120
|
+
findSubTitleByTime(currentTime: number): {
|
|
2121
|
+
delimiter: string;
|
|
2122
|
+
textArr: string[];
|
|
2123
|
+
timestamp: number;
|
|
2124
|
+
text: string;
|
|
2125
|
+
duration: number;
|
|
2126
|
+
url: string;
|
|
2127
|
+
lang: string;
|
|
2128
|
+
wordpiece?: any[];
|
|
2129
|
+
};
|
|
2130
|
+
splitSubTitle(subTitle: ISubTitles): {
|
|
2131
|
+
delimiter: string;
|
|
2132
|
+
textArr: string[];
|
|
2133
|
+
timestamp: number;
|
|
2134
|
+
text: string;
|
|
2135
|
+
duration: number;
|
|
2136
|
+
url: string;
|
|
2137
|
+
lang: string;
|
|
2138
|
+
wordpiece?: any[];
|
|
2139
|
+
};
|
|
2140
|
+
showSurplus(): void;
|
|
2141
|
+
createNewDom(parent: HTMLElement): HTMLSpanElement;
|
|
2142
|
+
test(): void;
|
|
2143
|
+
getPlayTime(): void;
|
|
2144
|
+
resetDom(el: HTMLElement): void;
|
|
2145
|
+
render(): string;
|
|
2146
|
+
}
|
|
2147
|
+
export declare class LiveSubtitlesIconPlugin extends Plugin {
|
|
2148
|
+
static get pluginName(): string;
|
|
2149
|
+
static get defaultConfig(): {
|
|
2150
|
+
position: string;
|
|
2151
|
+
index: number;
|
|
2152
|
+
defaultOpen: boolean;
|
|
2153
|
+
default: string;
|
|
2154
|
+
list: {
|
|
2155
|
+
key: string;
|
|
2156
|
+
showText: string;
|
|
2157
|
+
}[];
|
|
2158
|
+
};
|
|
2159
|
+
isMobile: boolean;
|
|
2160
|
+
isOpenState: boolean;
|
|
2161
|
+
optionList: any;
|
|
2162
|
+
currentLang: string;
|
|
2163
|
+
constructor(configs: any);
|
|
2164
|
+
afterCreate(): void;
|
|
2165
|
+
afterPlayerInit(): void;
|
|
2166
|
+
registerIcons(): {
|
|
2167
|
+
aiSubOpen: {
|
|
2168
|
+
icon: any;
|
|
2169
|
+
class: string;
|
|
2170
|
+
};
|
|
2171
|
+
aiSubClose: {
|
|
2172
|
+
icon: any;
|
|
2173
|
+
class: string;
|
|
2174
|
+
};
|
|
2175
|
+
};
|
|
2176
|
+
registerLanguageTexts(): {
|
|
2177
|
+
sub: {
|
|
2178
|
+
jp: string;
|
|
2179
|
+
en: string;
|
|
2180
|
+
zh: string;
|
|
2181
|
+
"zh-hk": string;
|
|
2182
|
+
};
|
|
2183
|
+
subOpen: {
|
|
2184
|
+
jp: string;
|
|
2185
|
+
en: string;
|
|
2186
|
+
zh: string;
|
|
2187
|
+
"zh-hk": string;
|
|
2188
|
+
};
|
|
2189
|
+
subClose: {
|
|
2190
|
+
jp: string;
|
|
2191
|
+
en: string;
|
|
2192
|
+
zh: string;
|
|
2193
|
+
"zh-hk": string;
|
|
2194
|
+
};
|
|
2195
|
+
};
|
|
2196
|
+
children(): {
|
|
2197
|
+
LiveSubTitlesPlugin: {
|
|
2198
|
+
plugin: typeof LiveSubTitlesPlugin;
|
|
2199
|
+
options: {
|
|
2200
|
+
root: HTMLElement;
|
|
2201
|
+
showLang: string;
|
|
2202
|
+
};
|
|
2203
|
+
};
|
|
2204
|
+
};
|
|
2205
|
+
initEvents(): void;
|
|
2206
|
+
handleButtonChange(): void;
|
|
2207
|
+
showMobilePanel(): void;
|
|
2208
|
+
renderItemList(): HTMLElement;
|
|
2209
|
+
renderItem(item: any): HTMLElement;
|
|
2210
|
+
updatePanel(): void;
|
|
2211
|
+
showPanel(): void;
|
|
2212
|
+
hidePanel(): void;
|
|
2213
|
+
open(isInit?: boolean): void;
|
|
2214
|
+
close(): void;
|
|
2215
|
+
renderOptionList(): void;
|
|
2216
|
+
changeSubTitleLang(key: string, isInit?: boolean): void;
|
|
2217
|
+
toggleSubTitle(): void;
|
|
2218
|
+
destroy(): void;
|
|
2219
|
+
render(): string;
|
|
2220
|
+
}
|
|
2221
|
+
export interface IPanelItem {
|
|
2222
|
+
showText: string;
|
|
2223
|
+
selected: boolean;
|
|
2224
|
+
language?: string | number;
|
|
2225
|
+
"data-id"?: number | string;
|
|
2226
|
+
"data-type"?: string;
|
|
2227
|
+
}
|
|
2228
|
+
export declare class Subtitle extends Plugin {
|
|
2229
|
+
static get pluginName(): string;
|
|
2230
|
+
static get defaultConfig(): {
|
|
2231
|
+
position: string;
|
|
2232
|
+
index: number;
|
|
2233
|
+
list: any[];
|
|
2234
|
+
isDefaultOpen: boolean;
|
|
2235
|
+
style: {
|
|
2236
|
+
follow: boolean;
|
|
2237
|
+
mode: string;
|
|
2238
|
+
followBottom: number;
|
|
2239
|
+
fitVideo: boolean;
|
|
2240
|
+
offsetBottom: number;
|
|
2241
|
+
baseSizeX: number;
|
|
2242
|
+
baseSizeY: number;
|
|
2243
|
+
minSize: number;
|
|
2244
|
+
minMobileSize: number;
|
|
2245
|
+
line: string;
|
|
2246
|
+
fontColor: string;
|
|
2247
|
+
};
|
|
2248
|
+
};
|
|
2249
|
+
private _delegates;
|
|
2250
|
+
isOpenState: boolean;
|
|
2251
|
+
optionList: any;
|
|
2252
|
+
currentLang: string;
|
|
2253
|
+
subTitles: any;
|
|
2254
|
+
curIndex: number;
|
|
2255
|
+
curItem: ISubTitleItem;
|
|
2256
|
+
beforeCreate(args: any): void;
|
|
2257
|
+
afterCreate(): void;
|
|
2258
|
+
initEvents(): void;
|
|
2259
|
+
handleButtonChange(e: any): void;
|
|
2260
|
+
showList(): void;
|
|
2261
|
+
hideList(): void;
|
|
2262
|
+
openSubtitle(): void;
|
|
2263
|
+
registerIcons(): {
|
|
2264
|
+
vttSubOpen: {
|
|
2265
|
+
icon: any;
|
|
2266
|
+
class: string;
|
|
2267
|
+
};
|
|
2268
|
+
vttSubClose: {
|
|
2269
|
+
icon: any;
|
|
2270
|
+
class: string;
|
|
2271
|
+
};
|
|
2272
|
+
};
|
|
2273
|
+
registerLanguageTexts(): {
|
|
2274
|
+
sub: {
|
|
2275
|
+
jp: string;
|
|
2276
|
+
en: string;
|
|
2277
|
+
zh: string;
|
|
2278
|
+
"zh-hk": string;
|
|
2279
|
+
};
|
|
2280
|
+
subOpen: {
|
|
2281
|
+
jp: string;
|
|
2282
|
+
en: string;
|
|
2283
|
+
zh: string;
|
|
2284
|
+
"zh-hk": string;
|
|
2285
|
+
};
|
|
2286
|
+
subClose: {
|
|
2287
|
+
jp: string;
|
|
2288
|
+
en: string;
|
|
2289
|
+
zh: string;
|
|
2290
|
+
"zh-hk": string;
|
|
2291
|
+
};
|
|
2292
|
+
};
|
|
2293
|
+
creatOptionList(): void;
|
|
2294
|
+
getList(): any;
|
|
2295
|
+
renderOptionList(): void;
|
|
2296
|
+
handlerClickSwitch: (e: any, data: any) => void;
|
|
2297
|
+
/**
|
|
2298
|
+
*
|
|
2299
|
+
* @param {ISubTitleItem} subtitle
|
|
2300
|
+
* @returns
|
|
2301
|
+
*/
|
|
2302
|
+
switchSubTitle(subtitle?: ISubTitleItem): any;
|
|
2303
|
+
switchOffSubtitle(): void;
|
|
2304
|
+
renderItemList(): void;
|
|
2305
|
+
/**
|
|
2306
|
+
*
|
|
2307
|
+
* @param { Array<ISubTitleItem> } list
|
|
2308
|
+
* @param { boolean } needRemove 是否移除原来的字幕
|
|
2309
|
+
*/
|
|
2310
|
+
updateSubtitles(list?: any[], needRemove?: boolean): void;
|
|
2311
|
+
changeTipText(): void;
|
|
2312
|
+
showMobilePanel(): void;
|
|
2313
|
+
updatePanel(): void;
|
|
2314
|
+
renderPanel(): HTMLElement;
|
|
2315
|
+
renderPanelItem(item: IPanelItem): HTMLElement;
|
|
2316
|
+
getTextByLang(item: any, key?: any, lang?: any): any;
|
|
2317
|
+
onPlayerFocus: (e: any) => void;
|
|
2318
|
+
onPlayerBlur: (e: any) => void;
|
|
2319
|
+
rePosition(): void;
|
|
2320
|
+
destroy(): void;
|
|
2321
|
+
render(): string;
|
|
2322
|
+
}
|
|
2323
|
+
export declare class DefinitionDemotePlugin extends Plugin {
|
|
2324
|
+
static get pluginName(): string;
|
|
2325
|
+
waitings: number[];
|
|
2326
|
+
timer: any;
|
|
2327
|
+
longWaitingEmitTime: number;
|
|
2328
|
+
waitingStartTime: number;
|
|
2329
|
+
playerData: any;
|
|
2330
|
+
isNeedShowTips: boolean;
|
|
2331
|
+
static get defaultConfig(): {
|
|
2332
|
+
oftenWaitingCount: number;
|
|
2333
|
+
oftenWaitingTime: number;
|
|
2334
|
+
longWaitingTime: number;
|
|
2335
|
+
isNeedAutoDemote: boolean;
|
|
2336
|
+
demotePriority: any[];
|
|
2337
|
+
};
|
|
2338
|
+
constructor(args: any);
|
|
2339
|
+
registerLanguageTexts(): {
|
|
2340
|
+
definition_demote_txt: {
|
|
2341
|
+
jp: string;
|
|
2342
|
+
en: string;
|
|
2343
|
+
zh: string;
|
|
2344
|
+
"zh-hk": string;
|
|
2345
|
+
};
|
|
2346
|
+
};
|
|
2347
|
+
afterCreate(): void;
|
|
2348
|
+
bindCtx(): void;
|
|
2349
|
+
bindEvents(): void;
|
|
2350
|
+
_waiting(): void;
|
|
2351
|
+
_count(): void;
|
|
2352
|
+
_time(): void;
|
|
2353
|
+
_clearTime(): void;
|
|
2354
|
+
clearState(): void;
|
|
2355
|
+
demote(): void;
|
|
2356
|
+
changeUrl(url: any): void;
|
|
2357
|
+
showToast(definition: any): void;
|
|
2358
|
+
destroy(): void;
|
|
2359
|
+
}
|
|
2360
|
+
export declare class TimeShiftPlugin extends Plugin {
|
|
2361
|
+
static get pluginName(): string;
|
|
2362
|
+
static get defaultConfig(): {
|
|
2363
|
+
position: string;
|
|
2364
|
+
livingStartTime: number;
|
|
2365
|
+
maxMoveTime: number;
|
|
2366
|
+
currentTime: number;
|
|
2367
|
+
timeShiftUrl: string;
|
|
2368
|
+
cardList: any[];
|
|
2369
|
+
};
|
|
2370
|
+
isMobile: boolean;
|
|
2371
|
+
playedBar: any;
|
|
2372
|
+
cachedBar: any;
|
|
2373
|
+
innerBar: any;
|
|
2374
|
+
progressBtn: any;
|
|
2375
|
+
progressPoint: any;
|
|
2376
|
+
backLiveBt: any;
|
|
2377
|
+
cardDomList: any[];
|
|
2378
|
+
initTime: number;
|
|
2379
|
+
liveGap: number;
|
|
2380
|
+
shiftTimeGap: number;
|
|
2381
|
+
isProgressMoving: boolean;
|
|
2382
|
+
isPlayTimeShift: boolean;
|
|
2383
|
+
private liveUrl;
|
|
2384
|
+
get duration(): any;
|
|
2385
|
+
registerLanguageTexts(): {
|
|
2386
|
+
BACKLIVE: {
|
|
2387
|
+
jp: string;
|
|
2388
|
+
en: string;
|
|
2389
|
+
zh: string;
|
|
2390
|
+
"zh-hk": string;
|
|
2391
|
+
};
|
|
2392
|
+
};
|
|
2393
|
+
updateLang(): void;
|
|
2394
|
+
afterCreate(): void;
|
|
2395
|
+
clacTime(): void;
|
|
2396
|
+
initEvents(): void;
|
|
2397
|
+
bindDomEvents(): void;
|
|
2398
|
+
handleTimeUpdate(): void;
|
|
2399
|
+
onBodyClick: (e: any) => void;
|
|
2400
|
+
handleMouseDown(e: any): void;
|
|
2401
|
+
handleMouseMove(e: any): void;
|
|
2402
|
+
handleMouseUp(e: any): void;
|
|
2403
|
+
handleMouseEnter(e: any): void;
|
|
2404
|
+
handleMouseLeave(): void;
|
|
2405
|
+
focus(): void;
|
|
2406
|
+
blur(): void;
|
|
2407
|
+
computeTime(e: any): {
|
|
2408
|
+
percent: number;
|
|
2409
|
+
offset: number;
|
|
2410
|
+
width: any;
|
|
2411
|
+
left: any;
|
|
2412
|
+
e: any;
|
|
2413
|
+
};
|
|
2414
|
+
tipsUpdate(e: any): void;
|
|
2415
|
+
updateShiftTime(percent: number): void;
|
|
2416
|
+
getCurrentProgress(): number;
|
|
2417
|
+
progressUpdate(): void;
|
|
2418
|
+
changeTimeShift(time: any): void;
|
|
2419
|
+
changeTimeUrl(): void;
|
|
2420
|
+
createBackLiveBtDom(): any;
|
|
2421
|
+
backLive(): void;
|
|
2422
|
+
toggleBackButton(): void;
|
|
2423
|
+
updateCardList(cardList: any): void;
|
|
2424
|
+
clearCardDom(): void;
|
|
2425
|
+
createTimeShiftCard(): void;
|
|
2426
|
+
renderCard(card: any): void;
|
|
2427
|
+
cardProcessUpdate(): void;
|
|
2428
|
+
calcCardProcess(time: any): number;
|
|
2429
|
+
destroy(): void;
|
|
2430
|
+
render(): string;
|
|
2431
|
+
}
|
|
2432
|
+
declare enum EventName {
|
|
2433
|
+
UNKNOWN_NATIVE_EVENT = "UNKNOWN_NATIVE_EVENT",
|
|
2434
|
+
SWITCH_NORMAL_WINDOW = "SWITCH_NORMAL_WINDOW",
|
|
2435
|
+
SWITCH_MINI_WINDOW = "SWITCH_MINI_WINDOW"
|
|
2436
|
+
}
|
|
2437
|
+
declare enum CallNativeEvent {
|
|
2438
|
+
/** 初始值 */
|
|
2439
|
+
Unknown = 0,
|
|
2440
|
+
/** 直播页面准备好开始播放 */
|
|
2441
|
+
LiveReady = 1,
|
|
2442
|
+
/** 直播开始播放 */
|
|
2443
|
+
LiveStart = 2,
|
|
2444
|
+
/** 直播暂停 */
|
|
2445
|
+
LivePause = 3,
|
|
2446
|
+
/** 直播结束 */
|
|
2447
|
+
LiveEnd = 4,
|
|
2448
|
+
/** 直播出现错误 */
|
|
2449
|
+
LiveError = 5,
|
|
2450
|
+
/** 直播静音按钮被点击 */
|
|
2451
|
+
LiveMuted = 6,
|
|
2452
|
+
/** 直播流地址变化,主要用于用户切花和程序自动切换兜底 */
|
|
2453
|
+
LiveStreamChange = 7,
|
|
2454
|
+
/** 弹幕开关变化 */
|
|
2455
|
+
DanmakuChange = 8,
|
|
2456
|
+
/** JS准备好,可以接收Native消息 */
|
|
2457
|
+
JsReady = 9
|
|
2458
|
+
}
|
|
2459
|
+
export declare type CallNativeDataParamsMap = Record<CallNativeEvent, Record<string, string>>;
|
|
2460
|
+
/**
|
|
2461
|
+
* 通信数据中通用的数据,因为根播放器相关的字段多个事件都在使用,所以单独写成一个结构体
|
|
2462
|
+
* @property stream_link 当前播放的流地址
|
|
2463
|
+
* @property muted 当前播放是否静音
|
|
2464
|
+
* @property danmaku_active 当前弹幕是否启用
|
|
2465
|
+
*/
|
|
2466
|
+
export interface CallNativeDataParamsCommon {
|
|
2467
|
+
stream_link?: string;
|
|
2468
|
+
muted?: boolean;
|
|
2469
|
+
danmaku_active?: boolean;
|
|
2470
|
+
}
|
|
2471
|
+
export declare type EventHandler = (...args: any) => void;
|
|
2472
|
+
export interface LarkJsBridgeOptions {
|
|
2473
|
+
liveId: string;
|
|
2474
|
+
}
|
|
2475
|
+
declare class LarkJsBridge {
|
|
2476
|
+
private emitter;
|
|
2477
|
+
private currentHost;
|
|
2478
|
+
private currentLarkVersion;
|
|
2479
|
+
private currentLiveId;
|
|
2480
|
+
private isInAndroid;
|
|
2481
|
+
private isInIOS;
|
|
2482
|
+
private isInLark;
|
|
2483
|
+
private isInitialized;
|
|
2484
|
+
private useV2;
|
|
2485
|
+
constructor();
|
|
2486
|
+
init(options?: LarkJsBridgeOptions): void;
|
|
2487
|
+
private initVariables;
|
|
2488
|
+
/**
|
|
2489
|
+
* 初始化需要在window对象上定义 native callback 回调
|
|
2490
|
+
* native 向 webview 通信时会调用
|
|
2491
|
+
*/
|
|
2492
|
+
private initNativeCallWebCallback;
|
|
2493
|
+
/**
|
|
2494
|
+
* 定义native发送给web事件的回调函数
|
|
2495
|
+
* @param event
|
|
2496
|
+
* @param data
|
|
2497
|
+
*/
|
|
2498
|
+
private callWebHandler;
|
|
2499
|
+
/**
|
|
2500
|
+
* 目前处理容器模式发生变化的事件通知
|
|
2501
|
+
* @param event
|
|
2502
|
+
* @param data
|
|
2503
|
+
*/
|
|
2504
|
+
private handleContainerModeChange;
|
|
2505
|
+
/**
|
|
2506
|
+
* 按通信定义的数据结构生成通信参数
|
|
2507
|
+
* @param event
|
|
2508
|
+
* @param params
|
|
2509
|
+
* @returns
|
|
2510
|
+
*/
|
|
2511
|
+
private genTransferNativeData;
|
|
2512
|
+
private generateCallNativeDataV1;
|
|
2513
|
+
private generateCallNativeDataV2;
|
|
2514
|
+
/**
|
|
2515
|
+
* webview 发送给 native 事件的方法
|
|
2516
|
+
* @param event
|
|
2517
|
+
* @param params
|
|
2518
|
+
* @returns
|
|
2519
|
+
*/
|
|
2520
|
+
postMessage<T extends CallNativeEvent>(event: T, params: CallNativeDataParamsMap[T] & CallNativeDataParamsCommon): void;
|
|
2521
|
+
/**
|
|
2522
|
+
* 注册监听native事件回调
|
|
2523
|
+
* @param ev
|
|
2524
|
+
* @param handler
|
|
2525
|
+
*/
|
|
2526
|
+
addEventListener(ev: EventName, handler: EventHandler): void;
|
|
2527
|
+
/**
|
|
2528
|
+
* 注销监听native事件回调
|
|
2529
|
+
* @param ev
|
|
2530
|
+
* @param handler
|
|
2531
|
+
*/
|
|
2532
|
+
removeEventListener(ev: EventName, handler: EventHandler): void;
|
|
2533
|
+
destroy(): void;
|
|
2534
|
+
}
|
|
2535
|
+
declare class NativeWindowPlugin extends BasePlugin {
|
|
2536
|
+
static get pluginName(): string;
|
|
2537
|
+
private isFirstLoad;
|
|
2538
|
+
larkJsBridge: LarkJsBridge;
|
|
2539
|
+
afterCreate(): void;
|
|
2540
|
+
destroy(): void;
|
|
2541
|
+
private postMessage;
|
|
2542
|
+
handleReady: () => void;
|
|
2543
|
+
handlePlay: () => void;
|
|
2544
|
+
handlePause: () => void;
|
|
2545
|
+
handleError: () => void;
|
|
2546
|
+
handleMuted: () => void;
|
|
2547
|
+
handleDanmakuChange: () => void;
|
|
2548
|
+
handleLoadedData: () => void;
|
|
2549
|
+
handleMiniMode: () => void;
|
|
2550
|
+
handleNormalMode: () => void;
|
|
2551
|
+
handleDanmaku(isOpen: boolean): void;
|
|
2552
|
+
}
|
|
2553
|
+
export declare class MirrorPlugin extends Plugin {
|
|
2554
|
+
static get pluginName(): string;
|
|
2555
|
+
static get defaultConfig(): {
|
|
2556
|
+
position: string;
|
|
2557
|
+
index: number;
|
|
2558
|
+
disable: boolean;
|
|
2559
|
+
defaultEnable: boolean;
|
|
2560
|
+
};
|
|
2561
|
+
isEnableMirror: boolean;
|
|
2562
|
+
constructor(args: any);
|
|
2563
|
+
afterCreate(): void;
|
|
2564
|
+
registerIcons(): {
|
|
2565
|
+
[x: string]: {
|
|
2566
|
+
icon: any;
|
|
2567
|
+
class: string;
|
|
2568
|
+
};
|
|
2569
|
+
};
|
|
2570
|
+
initIcons(): void;
|
|
2571
|
+
registerLanguageTexts(): {
|
|
2572
|
+
getMirror: {
|
|
2573
|
+
jp: string;
|
|
2574
|
+
en: string;
|
|
2575
|
+
zh: string;
|
|
2576
|
+
"zh-hk": string;
|
|
2577
|
+
};
|
|
2578
|
+
exitMirror: {
|
|
2579
|
+
jp: string;
|
|
2580
|
+
en: string;
|
|
2581
|
+
zh: string;
|
|
2582
|
+
"zh-hk": string;
|
|
2583
|
+
};
|
|
2584
|
+
};
|
|
2585
|
+
btnClick(e: any): void;
|
|
2586
|
+
action(flag: any): void;
|
|
2587
|
+
updateMirrorState(isEnableMirror: any): void;
|
|
2588
|
+
animate(isEnableMirror: any): void;
|
|
2589
|
+
switchTips(isEnableMirror: any): void;
|
|
2590
|
+
destroy(): void;
|
|
2591
|
+
render(): string;
|
|
2592
|
+
}
|
|
2593
|
+
declare class ToastPlugin extends Plugin {
|
|
2594
|
+
static get pluginName(): string;
|
|
2595
|
+
static get defaultConfig(): {
|
|
2596
|
+
index: number;
|
|
2597
|
+
};
|
|
2598
|
+
constructor(args: any);
|
|
2599
|
+
private toastNumber;
|
|
2600
|
+
private toastMaps;
|
|
2601
|
+
beforePlayerInit(): void;
|
|
2602
|
+
afterPlayerInit(): void;
|
|
2603
|
+
afterCreate(): void;
|
|
2604
|
+
destroy(): void;
|
|
2605
|
+
add(content: string | HTMLElement, duration?: number, isNeedCloseBt?: boolean): number;
|
|
2606
|
+
remove(id: number): void;
|
|
2607
|
+
renderToast(content: string | HTMLElement, isNeedCloseBt: any, id: any): HTMLElement;
|
|
2608
|
+
render(): string;
|
|
2609
|
+
}
|
|
2610
|
+
export declare class MemoryPlay extends Plugin {
|
|
2611
|
+
static get pluginName(): string;
|
|
2612
|
+
static get defaultConfig(): {
|
|
2613
|
+
getTime: any;
|
|
2614
|
+
saveTime: any;
|
|
2615
|
+
memoryId: string;
|
|
2616
|
+
};
|
|
2617
|
+
startTime: number;
|
|
2618
|
+
saveTimeFun: (id: number | string, time: number) => unknown;
|
|
2619
|
+
getTimeFun: (id: number | string) => number | Promise<number>;
|
|
2620
|
+
memoryId: number | string;
|
|
2621
|
+
canJump: boolean;
|
|
2622
|
+
constructor(args: any);
|
|
2623
|
+
registerLanguageTexts(): {
|
|
2624
|
+
preText: {
|
|
2625
|
+
jp: string;
|
|
2626
|
+
en: string;
|
|
2627
|
+
zh: string;
|
|
2628
|
+
"zh-hk": string;
|
|
2629
|
+
};
|
|
2630
|
+
};
|
|
2631
|
+
children(): {
|
|
2632
|
+
toast: typeof ToastPlugin;
|
|
2633
|
+
};
|
|
2634
|
+
afterCreate(): void;
|
|
2635
|
+
beforePlayerInit(): Promise<void>;
|
|
2636
|
+
destroy(): void;
|
|
2637
|
+
getTime(): Promise<void>;
|
|
2638
|
+
setSave(): void;
|
|
2639
|
+
showToast(): void;
|
|
2640
|
+
saveTimeByStorage(memoryId: any, time: any): void;
|
|
2641
|
+
getTimeByStorage(memoryId: any): string;
|
|
2642
|
+
}
|
|
2643
|
+
export declare type InfoItem = {
|
|
2644
|
+
key: string;
|
|
2645
|
+
label: string;
|
|
2646
|
+
labelTextKey?: string;
|
|
2647
|
+
value?: any;
|
|
2648
|
+
render?: (key: any) => string;
|
|
2649
|
+
type?: string;
|
|
2650
|
+
dom?: Element;
|
|
2651
|
+
};
|
|
2652
|
+
/**
|
|
2653
|
+
* 直播信息面板
|
|
2654
|
+
*/
|
|
2655
|
+
export declare class LiveInfoPanel extends Plugin {
|
|
2656
|
+
private _pollTimer;
|
|
2657
|
+
private _infoItems;
|
|
2658
|
+
static get pluginName(): string;
|
|
2659
|
+
static get defaultConfig(): {
|
|
2660
|
+
visible: boolean;
|
|
2661
|
+
showH265Info: boolean;
|
|
2662
|
+
};
|
|
2663
|
+
get streamType(): any;
|
|
2664
|
+
afterCreate(): void;
|
|
2665
|
+
registerLanguageTexts(): {
|
|
2666
|
+
DECODEFPS: {
|
|
2667
|
+
en: string;
|
|
2668
|
+
zh: string;
|
|
2669
|
+
};
|
|
2670
|
+
DECODECOST: {
|
|
2671
|
+
en: string;
|
|
2672
|
+
zh: string;
|
|
2673
|
+
};
|
|
2674
|
+
FORMAT: {
|
|
2675
|
+
en: string;
|
|
2676
|
+
zh: string;
|
|
2677
|
+
};
|
|
2678
|
+
FPS: {
|
|
2679
|
+
en: string;
|
|
2680
|
+
zh: string;
|
|
2681
|
+
};
|
|
2682
|
+
BITRATE: {
|
|
2683
|
+
en: string;
|
|
2684
|
+
zh: string;
|
|
2685
|
+
};
|
|
2686
|
+
GOP: {
|
|
2687
|
+
en: string;
|
|
2688
|
+
zh: string;
|
|
2689
|
+
};
|
|
2690
|
+
RESOLUTION: {
|
|
2691
|
+
en: string;
|
|
2692
|
+
zh: string;
|
|
2693
|
+
};
|
|
2694
|
+
ENCODETYPE: {
|
|
2695
|
+
en: string;
|
|
2696
|
+
zh: string;
|
|
2697
|
+
};
|
|
2698
|
+
BUFFEREND: {
|
|
2699
|
+
en: string;
|
|
2700
|
+
zh: string;
|
|
2701
|
+
};
|
|
2702
|
+
CURRENTTIME: {
|
|
2703
|
+
en: string;
|
|
2704
|
+
zh: string;
|
|
2705
|
+
};
|
|
2706
|
+
};
|
|
2707
|
+
_getDefaultInfo(data: any): Record<string, InfoItem>;
|
|
2708
|
+
_init(): void;
|
|
2709
|
+
_getStats(): any;
|
|
2710
|
+
_getInfoListData(): Record<string, InfoItem>;
|
|
2711
|
+
_initDom(infoItems: any): any;
|
|
2712
|
+
_updateTitle(rowDom: Element, item: InfoItem): void;
|
|
2713
|
+
_updateDom(rowdom: Element, newItem: InfoItem): void;
|
|
2714
|
+
_renderLabel(item: InfoItem): any;
|
|
2715
|
+
_renderValue(item: InfoItem): any;
|
|
2716
|
+
_handleDataChange(): void;
|
|
2717
|
+
_tick(): void;
|
|
2718
|
+
_poll(): void;
|
|
2719
|
+
destroy(): void;
|
|
2720
|
+
_handleError(): void;
|
|
2721
|
+
_handleLoadedData(): void;
|
|
2722
|
+
_open(): void;
|
|
2723
|
+
_close(): void;
|
|
2724
|
+
open(): void;
|
|
2725
|
+
close(): void;
|
|
2726
|
+
render(): string;
|
|
2727
|
+
}
|
|
2728
|
+
|
|
2729
|
+
export {
|
|
2730
|
+
LiveSubTitlesPlugin as LiveSubtitlesPlugin,
|
|
2731
|
+
NativeWindowPlugin as LarkWindowPlugin,
|
|
2732
|
+
VePlayer as default,
|
|
2733
|
+
};
|
|
2734
|
+
|
|
2735
|
+
export {};
|