@volcengine/veplayer 1.17.0-rc.0 → 1.17.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +1452 -637
- package/index.min.css +1 -1
- package/index.min.js +2 -2
- package/package.json +1 -1
- package/plugin/XGVideo.js +1 -2
- package/plugin/flv.js +1 -1
- package/plugin/hls.js +1 -1
- package/plugin/hlsEncrypt.js +2 -2
- package/plugin/hlsjsPro.js +2 -0
- package/plugin/preloader.js +2 -2
- package/plugin/vestrategy_preload.js +1 -1
- package/plugin/xgHls.js +1 -0
package/index.d.ts
CHANGED
|
@@ -897,6 +897,53 @@ export declare class DefinitionDemotePlugin extends Plugin {
|
|
|
897
897
|
showToast(definition: Stream): void;
|
|
898
898
|
destroy(): void;
|
|
899
899
|
}
|
|
900
|
+
/**
|
|
901
|
+
* 音轨选择选项。
|
|
902
|
+
* 对应 hls.js `AudioSelectionOption` 的所有字段,所有字段均可选。
|
|
903
|
+
* 用于 `switchAudioTrack()` 参数(配合 `id` 使用)以及 `audioPreference` 配置。
|
|
904
|
+
*/
|
|
905
|
+
export interface AudioTrackOption {
|
|
906
|
+
lang?: string;
|
|
907
|
+
assocLang?: string;
|
|
908
|
+
characteristics?: string;
|
|
909
|
+
channels?: string;
|
|
910
|
+
name?: string;
|
|
911
|
+
audioCodec?: string;
|
|
912
|
+
groupId?: string;
|
|
913
|
+
default?: boolean;
|
|
914
|
+
[key: string]: unknown;
|
|
915
|
+
}
|
|
916
|
+
export interface AudioTrack extends AudioTrackOption {
|
|
917
|
+
id: number;
|
|
918
|
+
name: string;
|
|
919
|
+
default: boolean;
|
|
920
|
+
}
|
|
921
|
+
/**
|
|
922
|
+
* `getAudioTracks()` / `getCurrentAudioTrack()` 的返回项类型。
|
|
923
|
+
* 是 `switchAudioTrack()` 参数类型的子类型,可直接传入。
|
|
924
|
+
*/
|
|
925
|
+
export interface AudioTrackInfo extends AudioTrack {
|
|
926
|
+
/** 是否为当前激活轨道。`getCurrentAudioTrack()` 返回时始终为 `true`。 */
|
|
927
|
+
selected: boolean;
|
|
928
|
+
}
|
|
929
|
+
export interface IAudioTrackConfig {
|
|
930
|
+
/** 控件在控制栏中的排列顺序,数值越小越靠左。@default 5 */
|
|
931
|
+
index?: number;
|
|
932
|
+
/** 是否显示图标按钮。@default true */
|
|
933
|
+
isShowIcon?: boolean;
|
|
934
|
+
/** 竖屏时是否隐藏控件。@default false */
|
|
935
|
+
hidePortrait?: boolean;
|
|
936
|
+
/** 音轨列表中是否在语言名称后显示括号内的原始轨道名,如 `日本語 (Stereo AudioTrack1)`。@default true */
|
|
937
|
+
showNameSuffix?: boolean;
|
|
938
|
+
}
|
|
939
|
+
export interface IAudioTrackMobileConfig {
|
|
940
|
+
/** 控件在控制栏中的排列顺序,数值越小越靠左。@default 2.6 */
|
|
941
|
+
index?: number;
|
|
942
|
+
/** 是否显示图标按钮。@default true */
|
|
943
|
+
isShowIcon?: boolean;
|
|
944
|
+
/** 音轨列表中是否在语言名称后显示括号内的原始轨道名,如 `日本語 (Stereo AudioTrack1)`。@default true */
|
|
945
|
+
showNameSuffix?: boolean;
|
|
946
|
+
}
|
|
900
947
|
/**
|
|
901
948
|
* @brief DASH 播放配置。
|
|
902
949
|
* @list Options
|
|
@@ -2378,24 +2425,36 @@ export interface IMusicListItem {
|
|
|
2378
2425
|
* @type {string}
|
|
2379
2426
|
* @brief 音乐播放地址。
|
|
2380
2427
|
*/
|
|
2428
|
+
/** {en}
|
|
2429
|
+
* @brief Music playback URL.
|
|
2430
|
+
*/
|
|
2381
2431
|
src: string;
|
|
2382
2432
|
/** {zh}
|
|
2383
2433
|
* @type {string | number}
|
|
2384
2434
|
* @memberof IMusicListItem
|
|
2385
2435
|
* @brief 音乐唯一 ID。
|
|
2386
2436
|
*/
|
|
2437
|
+
/** {en}
|
|
2438
|
+
* @brief Unique music ID.
|
|
2439
|
+
*/
|
|
2387
2440
|
vid: string | number;
|
|
2388
2441
|
/** {zh}
|
|
2389
2442
|
* @type {string}
|
|
2390
2443
|
* @memberof IMusicListItem
|
|
2391
2444
|
* @brief 音乐封面 URL 地址。
|
|
2392
2445
|
*/
|
|
2446
|
+
/** {en}
|
|
2447
|
+
* @brief Music cover image URL.
|
|
2448
|
+
*/
|
|
2393
2449
|
poster?: string;
|
|
2394
2450
|
/** {zh}
|
|
2395
2451
|
* @type {string}
|
|
2396
2452
|
* @memberof IMusicListItem
|
|
2397
2453
|
* @brief 音乐标题。
|
|
2398
2454
|
*/
|
|
2455
|
+
/** {en}
|
|
2456
|
+
* @brief Music title.
|
|
2457
|
+
*/
|
|
2399
2458
|
title?: string;
|
|
2400
2459
|
/** {zh}
|
|
2401
2460
|
* @hidden
|
|
@@ -2419,6 +2478,10 @@ export interface IABCycle {
|
|
|
2419
2478
|
* @memberof IABCycle
|
|
2420
2479
|
* @brief AB 循环段开始时间,单位为秒。
|
|
2421
2480
|
*/
|
|
2481
|
+
/** {en}
|
|
2482
|
+
* @brief AB loop start time in seconds.
|
|
2483
|
+
* @default 0
|
|
2484
|
+
*/
|
|
2422
2485
|
start: number;
|
|
2423
2486
|
/** {zh}
|
|
2424
2487
|
* @default 音乐结束时间点
|
|
@@ -2427,6 +2490,10 @@ export interface IABCycle {
|
|
|
2427
2490
|
* @memberof IABCycle
|
|
2428
2491
|
* @brief AB 循环段开始时间,单位为秒。
|
|
2429
2492
|
*/
|
|
2493
|
+
/** {en}
|
|
2494
|
+
* @brief AB loop end time in seconds.
|
|
2495
|
+
* @default End of audio
|
|
2496
|
+
*/
|
|
2430
2497
|
end: number;
|
|
2431
2498
|
/** {zh}
|
|
2432
2499
|
* @default false
|
|
@@ -2434,6 +2501,10 @@ export interface IABCycle {
|
|
|
2434
2501
|
* @memberof IABCycle
|
|
2435
2502
|
* @brief AB 段是否循环播放。
|
|
2436
2503
|
*/
|
|
2504
|
+
/** {en}
|
|
2505
|
+
* @brief Whether to loop the AB segment.
|
|
2506
|
+
* @default false
|
|
2507
|
+
*/
|
|
2437
2508
|
loop?: boolean;
|
|
2438
2509
|
/**
|
|
2439
2510
|
* @hidden
|
|
@@ -2457,6 +2528,10 @@ export interface IMusicConfig {
|
|
|
2457
2528
|
* @memberof IMusicConfig
|
|
2458
2529
|
* @brief 是否启用离线下载播放。
|
|
2459
2530
|
*/
|
|
2531
|
+
/** {en}
|
|
2532
|
+
* @brief Whether to enable offline downloaded playback.
|
|
2533
|
+
* @default false
|
|
2534
|
+
*/
|
|
2460
2535
|
offline?: boolean;
|
|
2461
2536
|
/** {zh}
|
|
2462
2537
|
* @default null
|
|
@@ -2465,6 +2540,10 @@ export interface IMusicConfig {
|
|
|
2465
2540
|
* @memberof IMusicConfig
|
|
2466
2541
|
* @brief AB 循环播放配置。
|
|
2467
2542
|
*/
|
|
2543
|
+
/** {en}
|
|
2544
|
+
* @brief AB loop playback configuration.
|
|
2545
|
+
* @default null
|
|
2546
|
+
*/
|
|
2468
2547
|
abCycle?: IABCycle | null;
|
|
2469
2548
|
/** {zh}
|
|
2470
2549
|
* @default 15
|
|
@@ -2473,6 +2552,10 @@ export interface IMusicConfig {
|
|
|
2473
2552
|
* @memberof IMusicConfig
|
|
2474
2553
|
* @brief 快进快退时间跨度,单位为秒。
|
|
2475
2554
|
*/
|
|
2555
|
+
/** {en}
|
|
2556
|
+
* @brief Fast-forward / rewind step in seconds.
|
|
2557
|
+
* @default 15
|
|
2558
|
+
*/
|
|
2476
2559
|
timeScale?: number;
|
|
2477
2560
|
/** {zh}
|
|
2478
2561
|
* @default order
|
|
@@ -2481,6 +2564,10 @@ export interface IMusicConfig {
|
|
|
2481
2564
|
* @memberof IMusicConfig
|
|
2482
2565
|
* @brief 循环模式。
|
|
2483
2566
|
*/
|
|
2567
|
+
/** {en}
|
|
2568
|
+
* @brief Playback loop mode: `order`, `sloop` (single loop), `loop` (list loop), `random`.
|
|
2569
|
+
* @default order
|
|
2570
|
+
*/
|
|
2484
2571
|
mode?: PlayModeType;
|
|
2485
2572
|
/** {zh}
|
|
2486
2573
|
* @default []
|
|
@@ -2489,6 +2576,10 @@ export interface IMusicConfig {
|
|
|
2489
2576
|
* @memberof IMusicConfig
|
|
2490
2577
|
* @brief 播放列表。
|
|
2491
2578
|
*/
|
|
2579
|
+
/** {en}
|
|
2580
|
+
* @brief Music playlist.
|
|
2581
|
+
* @default []
|
|
2582
|
+
*/
|
|
2492
2583
|
list?: Array<IMusicListItem>;
|
|
2493
2584
|
/** {zh}
|
|
2494
2585
|
* @hidden
|
|
@@ -2518,18 +2609,27 @@ export interface Stream extends Partial<IPlayInfoListItem> {
|
|
|
2518
2609
|
* - `"mp4"`
|
|
2519
2610
|
* - `"hls"`
|
|
2520
2611
|
*/
|
|
2612
|
+
/** {en}
|
|
2613
|
+
* @brief Stream type: `"rtm"`, `"flv"`, `"mp4"`, or `"hls"`.
|
|
2614
|
+
*/
|
|
2521
2615
|
streamType?: string;
|
|
2522
2616
|
/** {zh}
|
|
2523
2617
|
* @brief 视频播放地址。
|
|
2524
2618
|
* @type {Url}
|
|
2525
2619
|
* @memberof IPlayerConfig
|
|
2526
2620
|
*/
|
|
2621
|
+
/** {en}
|
|
2622
|
+
* @brief Video playback URL.
|
|
2623
|
+
*/
|
|
2527
2624
|
url: Url;
|
|
2528
2625
|
/** {zh}
|
|
2529
2626
|
* @type {string}
|
|
2530
2627
|
* @memberof Stream
|
|
2531
2628
|
* @brief 清晰度 key
|
|
2532
2629
|
*/
|
|
2630
|
+
/** {en}
|
|
2631
|
+
* @brief Definition key for this stream.
|
|
2632
|
+
*/
|
|
2533
2633
|
definition?: string;
|
|
2534
2634
|
/** {zh}
|
|
2535
2635
|
* @type {string}
|
|
@@ -2537,6 +2637,10 @@ export interface Stream extends Partial<IPlayInfoListItem> {
|
|
|
2537
2637
|
* @brief 映射清晰度 key
|
|
2538
2638
|
* @default -
|
|
2539
2639
|
*/
|
|
2640
|
+
/** {en}
|
|
2641
|
+
* @brief Mapped definition key.
|
|
2642
|
+
* @default -
|
|
2643
|
+
*/
|
|
2540
2644
|
mapDefinition?: string;
|
|
2541
2645
|
/** {zh}
|
|
2542
2646
|
* @type {string}
|
|
@@ -2548,10 +2652,17 @@ export interface Stream extends Partial<IPlayInfoListItem> {
|
|
|
2548
2652
|
* @brief 编码格式
|
|
2549
2653
|
* @default unknown
|
|
2550
2654
|
*/
|
|
2655
|
+
/** {en}
|
|
2656
|
+
* @brief Codec type of this stream.
|
|
2657
|
+
* @default unknown
|
|
2658
|
+
*/
|
|
2551
2659
|
codec?: ICodecType;
|
|
2552
2660
|
/** {zh}
|
|
2553
2661
|
* @brief 线路唯一 ID
|
|
2554
2662
|
*/
|
|
2663
|
+
/** {en}
|
|
2664
|
+
* @brief Unique line (CDN route) ID.
|
|
2665
|
+
*/
|
|
2555
2666
|
lineId?: number | string;
|
|
2556
2667
|
/** {zh}
|
|
2557
2668
|
* @example
|
|
@@ -2602,6 +2713,9 @@ export interface Stream extends Partial<IPlayInfoListItem> {
|
|
|
2602
2713
|
/** {zh}
|
|
2603
2714
|
* @brief 私有加密播放的加密密钥,对应{@link https://www.volcengine.com/docs/4/2918 GetPlayInfo} 接口返回的PlayInfoList项中的 PlayAuth
|
|
2604
2715
|
*/
|
|
2716
|
+
/** {en}
|
|
2717
|
+
* @brief Encryption key for private-encrypted playback, corresponding to `PlayAuth` in the GetPlayInfo response.
|
|
2718
|
+
*/
|
|
2605
2719
|
secretKey?: string;
|
|
2606
2720
|
/**
|
|
2607
2721
|
* @brief 视频为加密视频时的加密类型
|
|
@@ -2697,6 +2811,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2697
2811
|
* @default -
|
|
2698
2812
|
* @listtip `id` 和 `root` 参数需至少传入 1 个。如果都传入,则优先使用 `root` 参数。
|
|
2699
2813
|
*/
|
|
2814
|
+
/** {en}
|
|
2815
|
+
* @brief Player container ID. The player will be inserted into this container. At least one of `id` or `root` must be provided.
|
|
2816
|
+
* @default -
|
|
2817
|
+
*/
|
|
2700
2818
|
id?: string;
|
|
2701
2819
|
/** {zh}
|
|
2702
2820
|
* @brief 播放器容器 DOM 元素。VePlayer 将被插入该容器中。
|
|
@@ -2704,11 +2822,19 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2704
2822
|
* @default -
|
|
2705
2823
|
* @listtip `id` 和 `root` 参数需至少传入 1 个。如果都传入,则优先使用 `root` 参数。
|
|
2706
2824
|
*/
|
|
2825
|
+
/** {en}
|
|
2826
|
+
* @brief Player container DOM element. VePlayer will be inserted into this container. At least one of `id` or `root` must be provided; `root` takes precedence when both are provided.
|
|
2827
|
+
* @default -
|
|
2828
|
+
*/
|
|
2707
2829
|
root?: HTMLElement;
|
|
2708
2830
|
/** {zh}
|
|
2709
2831
|
* @brief 视频播放地址。
|
|
2710
2832
|
* @default -
|
|
2711
2833
|
*/
|
|
2834
|
+
/** {en}
|
|
2835
|
+
* @brief Video playback URL.
|
|
2836
|
+
* @default -
|
|
2837
|
+
*/
|
|
2712
2838
|
url?: Url;
|
|
2713
2839
|
/** {zh}
|
|
2714
2840
|
* @brief 视频点播服务中的视频 ID。推荐填写,以方便跟踪该视频的播放质量。您将音视频上传至视频点播服务后,可通过以下方式获取 `Vid`:
|
|
@@ -2718,21 +2844,35 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2718
2844
|
* - 如果您设置了媒资上传完成的回调事件,会在 [FileUploadComplete](https://www.volcengine.com/docs/4/4655) 中返回 `Vid`。
|
|
2719
2845
|
* @default -
|
|
2720
2846
|
*/
|
|
2847
|
+
/** {en}
|
|
2848
|
+
* @brief Video ID in the VOD service. Recommended for tracking playback quality.
|
|
2849
|
+
* @default -
|
|
2850
|
+
*/
|
|
2721
2851
|
vid?: string;
|
|
2722
2852
|
/** {zh}
|
|
2723
2853
|
* @brief Vid 播放配置项。应用服务端需通过 `vid` 生成临时临时播放 Token,下发给客户端。
|
|
2724
2854
|
* @type {IPlayAuthTokenConfig}
|
|
2725
2855
|
* @memberof IPlayerConfig
|
|
2726
2856
|
*/
|
|
2857
|
+
/** {en}
|
|
2858
|
+
* @brief Vid playback configuration. The app server generates a temporary play token from `vid` and passes it to the client.
|
|
2859
|
+
*/
|
|
2727
2860
|
getVideoByToken?: IPlayAuthTokenConfig;
|
|
2728
2861
|
/** {zh}
|
|
2729
2862
|
* @brief 视频加密类型
|
|
2730
2863
|
* @default -
|
|
2731
2864
|
*/
|
|
2865
|
+
/** {en}
|
|
2866
|
+
* @brief Video encryption type.
|
|
2867
|
+
* @default -
|
|
2868
|
+
*/
|
|
2732
2869
|
drmType?: EDRMTYPE;
|
|
2733
2870
|
/** {zh}
|
|
2734
2871
|
* @brief 私有加密会话id
|
|
2735
2872
|
*/
|
|
2873
|
+
/** {en}
|
|
2874
|
+
* @brief Private encryption session ID.
|
|
2875
|
+
*/
|
|
2736
2876
|
encryptSessionId?: string;
|
|
2737
2877
|
/**
|
|
2738
2878
|
* @brief 视频为加密视频时的密钥KeyId,对应{@link https://www.volcengine.com/docs/4/2918 GetPlayInfo} 接口返回的PlayInfoList项中的 PlayAuthId
|
|
@@ -2742,6 +2882,9 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2742
2882
|
/** {zh}
|
|
2743
2883
|
* @brief 私有加密播放的加密密钥,对应{@link https://www.volcengine.com/docs/4/2918 GetPlayInfo} 接口返回的PlayInfoList项中的 PlayAuth
|
|
2744
2884
|
*/
|
|
2885
|
+
/** {en}
|
|
2886
|
+
* @brief Encryption key for private-encrypted playback, corresponding to `PlayAuth` in the GetPlayInfo response.
|
|
2887
|
+
*/
|
|
2745
2888
|
playAuth?: string;
|
|
2746
2889
|
/** {zh}
|
|
2747
2890
|
* @brief 视频格式。取值如下:
|
|
@@ -2751,21 +2894,36 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2751
2894
|
* - `flv`
|
|
2752
2895
|
* @listtip 如果 `url` 参数取值中不包含文件格式后缀,则 `streamType` 必填。
|
|
2753
2896
|
*/
|
|
2897
|
+
/** {en}
|
|
2898
|
+
* @brief Video format. Required when the `url` does not include a file extension.
|
|
2899
|
+
*/
|
|
2754
2900
|
streamType?: "mp4" | "hls" | "dash" | "rtm" | "flv";
|
|
2755
2901
|
/** {zh}
|
|
2756
2902
|
* @brief 播放器宽度。可传入数字或者 CSS `width` 属性值。如为数字,单位为 px。
|
|
2757
2903
|
* @default 100%
|
|
2758
2904
|
*/
|
|
2905
|
+
/** {en}
|
|
2906
|
+
* @brief Player width. Accepts a number (px) or a CSS `width` value.
|
|
2907
|
+
* @default 100%
|
|
2908
|
+
*/
|
|
2759
2909
|
width?: number | string;
|
|
2760
2910
|
/** {zh}
|
|
2761
2911
|
* @brief 播放器高度。可传入数字或者 CSS `width` 属性值。如为数字,单位为 px。
|
|
2762
2912
|
* @default 100%
|
|
2763
2913
|
*/
|
|
2914
|
+
/** {en}
|
|
2915
|
+
* @brief Player height. Accepts a number (px) or a CSS `height` value.
|
|
2916
|
+
* @default 100%
|
|
2917
|
+
*/
|
|
2764
2918
|
height?: number | string;
|
|
2765
2919
|
/** {zh}
|
|
2766
2920
|
* @brief 默认起播音量。取值范围为 [0,1]。
|
|
2767
2921
|
* @default 0.6
|
|
2768
2922
|
*/
|
|
2923
|
+
/** {en}
|
|
2924
|
+
* @brief Initial playback volume. Range: [0, 1].
|
|
2925
|
+
* @default 0.6
|
|
2926
|
+
*/
|
|
2769
2927
|
volume?: number;
|
|
2770
2928
|
/** {zh}
|
|
2771
2929
|
* @brief 是否开启自动播放。取值如下:
|
|
@@ -2775,10 +2933,17 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2775
2933
|
* @notes 受限制于浏览器策略,自动播放不一定能成功,取决于浏览器环境、用户行为、浏览器配置等,详细参考自动播放 @link https://www.volcengine.com/docs/4/68693#%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE
|
|
2776
2934
|
* @listtip 受限于浏览器策略,自动播放不一定能成功,取决于浏览器环境、用户行为、浏览器配置等。详情请参考[自动播放](https://www.volcengine.com/docs/4/68693#%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE)。
|
|
2777
2935
|
*/
|
|
2936
|
+
/** {en}
|
|
2937
|
+
* @brief Whether to enable autoplay. Subject to browser autoplay policies.
|
|
2938
|
+
* @default false
|
|
2939
|
+
*/
|
|
2778
2940
|
autoplay?: boolean;
|
|
2779
2941
|
/** {zh}
|
|
2780
2942
|
* @brief 视频封面图配置。
|
|
2781
2943
|
*/
|
|
2944
|
+
/** {en}
|
|
2945
|
+
* @brief Video poster image configuration.
|
|
2946
|
+
*/
|
|
2782
2947
|
poster?: string | IPoster;
|
|
2783
2948
|
/** {zh}
|
|
2784
2949
|
* @brief 是否开启静音自动播放。取值如下:
|
|
@@ -2786,6 +2951,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2786
2951
|
* - `false`:关闭静音自动播放。
|
|
2787
2952
|
* @default false
|
|
2788
2953
|
*/
|
|
2954
|
+
/** {en}
|
|
2955
|
+
* @brief Whether to enable muted autoplay.
|
|
2956
|
+
* @default false
|
|
2957
|
+
*/
|
|
2789
2958
|
autoplayMuted?: boolean;
|
|
2790
2959
|
/** {zh}
|
|
2791
2960
|
* @brief 是否开启降级静音自动播放。开启后,有声音自动播放失败时,会降级成静音自动播放。取值如下:
|
|
@@ -2793,6 +2962,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2793
2962
|
* - `false`:关闭降级静音自动播放
|
|
2794
2963
|
* @default false
|
|
2795
2964
|
*/
|
|
2965
|
+
/** {en}
|
|
2966
|
+
* @brief Whether to fall back to muted autoplay when autoplay with sound fails.
|
|
2967
|
+
* @default false
|
|
2968
|
+
*/
|
|
2796
2969
|
enableDegradeMuteAutoplay?: boolean;
|
|
2797
2970
|
/** {zh}
|
|
2798
2971
|
* @brief 启用微信jsBridge方式的自动播放,默认不开启
|
|
@@ -2811,6 +2984,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2811
2984
|
* - `false`:不开启
|
|
2812
2985
|
* @default false
|
|
2813
2986
|
*/
|
|
2987
|
+
/** {en}
|
|
2988
|
+
* @brief Whether to allow the first user interaction (any click) to trigger autoplay.
|
|
2989
|
+
* @default false
|
|
2990
|
+
*/
|
|
2814
2991
|
enableUserActionAutoplay?: boolean;
|
|
2815
2992
|
/** {zh}
|
|
2816
2993
|
* @brief 是否开启循环播放。取值如下:
|
|
@@ -2818,11 +2995,19 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2818
2995
|
* - `false`:关闭循环播放。
|
|
2819
2996
|
* @default false
|
|
2820
2997
|
*/
|
|
2998
|
+
/** {en}
|
|
2999
|
+
* @brief Whether to enable loop playback.
|
|
3000
|
+
* @default false
|
|
3001
|
+
*/
|
|
2821
3002
|
loop?: boolean;
|
|
2822
3003
|
/** {zh}
|
|
2823
3004
|
* @brief 默认起播倍速。可设为 `0.5`、`0.75`、`1`、`1.5`、`2`。
|
|
2824
3005
|
* @default 1
|
|
2825
3006
|
*/
|
|
3007
|
+
/** {en}
|
|
3008
|
+
* @brief Default playback rate. Supported values: `0.5`, `0.75`, `1`, `1.5`, `2`.
|
|
3009
|
+
* @default 1
|
|
3010
|
+
*/
|
|
2826
3011
|
defaultPlaybackRate?: number;
|
|
2827
3012
|
/** {zh}
|
|
2828
3013
|
* @brief 界面语言。取值如下:
|
|
@@ -2832,6 +3017,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2832
3017
|
* - `zh-hk`
|
|
2833
3018
|
* @default zh
|
|
2834
3019
|
*/
|
|
3020
|
+
/** {en}
|
|
3021
|
+
* @brief UI language. Supported values: `zh`, `zh-cn`, `en`, `jp`, `zh-hk`.
|
|
3022
|
+
* @default zh
|
|
3023
|
+
*/
|
|
2835
3024
|
lang?: "zh" | "zh-cn" | "en" | "jp" | "zh-hk";
|
|
2836
3025
|
/** {zh}
|
|
2837
3026
|
* @brief 多语言词典。可设置每个语种的词典,例如:
|
|
@@ -2842,6 +3031,9 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2842
3031
|
* @see 了解更多,请参见{@link https://www.volcengine.com/docs/6469/127529 默认词典}。
|
|
2843
3032
|
* @listtip 了解更多,请参见[默认词典](https://www.volcengine.com/docs/6469/127529)。
|
|
2844
3033
|
*/
|
|
3034
|
+
/** {en}
|
|
3035
|
+
* @brief i18n dictionary. Provide per-language key-value maps, e.g. `{ zh: { PIP: '画中画' }, en: { PIP: 'pip' } }`.
|
|
3036
|
+
*/
|
|
2845
3037
|
languages?: {
|
|
2846
3038
|
[key: string]: Record<string, any>;
|
|
2847
3039
|
};
|
|
@@ -2851,17 +3043,28 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2851
3043
|
* @notes 画中画功能由浏览器提供,如果本身浏览器不支持,即使有该配置也不显示画中画按钮
|
|
2852
3044
|
* @listtip 画中画功能由浏览器提供。如果浏览器不支持,即使传入此配置也不会显示画中画按钮。
|
|
2853
3045
|
*/
|
|
3046
|
+
/** {en}
|
|
3047
|
+
* @brief Picture-in-picture configuration. Requires browser-level PiP support.
|
|
3048
|
+
* @default PC: {position: 'controlsRight', index: 2.5, showIcon: true}; mobile: false
|
|
3049
|
+
*/
|
|
2854
3050
|
pip?: IPIPConfig | boolean;
|
|
2855
3051
|
/** {zh}
|
|
2856
3052
|
* @brief 全屏配置。
|
|
2857
3053
|
* @default {position: 'controlsRight', index: 0, rotateFullscreen: false, useCssFullscreen: false, target: null, switchCallback: null, disable: false, needBackIcon: false }
|
|
2858
3054
|
*/
|
|
3055
|
+
/** {en}
|
|
3056
|
+
* @brief Fullscreen configuration.
|
|
3057
|
+
*/
|
|
2859
3058
|
fullscreen?: IFullscreenConfig;
|
|
2860
3059
|
/** {zh}
|
|
2861
3060
|
* @breif 是否总是显示清晰度切换控件,即只有一个清晰度时也显示清晰度切换控件
|
|
2862
3061
|
* @default false
|
|
2863
3062
|
* @brief 是否总是显示清晰度切换控件,即只有单个清晰度时也显示清晰度切换控件。
|
|
2864
3063
|
*/
|
|
3064
|
+
/** {en}
|
|
3065
|
+
* @brief Whether to always show the definition selector, even when only one definition is available.
|
|
3066
|
+
* @default false
|
|
3067
|
+
*/
|
|
2865
3068
|
alwaysShowDefinition?: boolean;
|
|
2866
3069
|
/** {zh}
|
|
2867
3070
|
* @breif url对应视频的清晰度文案,仅`alwaysShowDefinition`为`true`时有效
|
|
@@ -2869,12 +3072,20 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2869
3072
|
* @listtip 仅 `alwaysShowDefinition` 为 `true` 时有效。
|
|
2870
3073
|
* @brief `url` 参数对应视频的清晰度文案。
|
|
2871
3074
|
*/
|
|
3075
|
+
/** {en}
|
|
3076
|
+
* @brief Display label for the definition corresponding to `url`. Only effective when `alwaysShowDefinition` is `true`.
|
|
3077
|
+
* @default HD
|
|
3078
|
+
*/
|
|
2872
3079
|
definitionText?: string;
|
|
2873
3080
|
/** {zh}
|
|
2874
3081
|
* @brief `url` 参数对应视频的清晰度文案的多语言 key,对应参数 `languages` 中的文案。
|
|
2875
3082
|
* @default -
|
|
2876
3083
|
* @listtip 仅 `alwaysShowDefinition` 为 `true` 时有效,优先级高于 `definitionText`。
|
|
2877
3084
|
*/
|
|
3085
|
+
/** {en}
|
|
3086
|
+
* @brief i18n key for the definition label of `url`, mapping to `languages`. Takes priority over `definitionText`.
|
|
3087
|
+
* @default -
|
|
3088
|
+
*/
|
|
2878
3089
|
definitionTextKey?: string;
|
|
2879
3090
|
/** {zh}
|
|
2880
3091
|
* @brief 视频编码格式。
|
|
@@ -2882,6 +3093,9 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2882
3093
|
* @listtip - 在已知视频编码方式的情况下推荐传入,以便日志分析。
|
|
2883
3094
|
* - 在 `useSoftDecoding` 参数为 `true`(开启 H.265 兼容降级模式)时,建议传入,可提升软解初始效率。
|
|
2884
3095
|
*/
|
|
3096
|
+
/** {en}
|
|
3097
|
+
* @brief Video codec type. Recommended when the codec is known, to improve log analysis and soft-decode initialization.
|
|
3098
|
+
*/
|
|
2885
3099
|
codec?: ICodecType;
|
|
2886
3100
|
/** {zh}
|
|
2887
3101
|
* @brief 点播服务所在区域,影响服务接口的请求域名
|
|
@@ -2933,6 +3147,9 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2933
3147
|
* @brief `video` 标签扩展属性。播放器初始化时会设置在 `videoElement` 或 `audioElement` 对象上。请参考 [HTMLMediaElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement#properties) 查看支持的属性。
|
|
2934
3148
|
* @default 无
|
|
2935
3149
|
*/
|
|
3150
|
+
/** {en}
|
|
3151
|
+
* @brief Extra attributes applied to the `videoElement` / `audioElement` on initialization. See [HTMLMediaElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement#properties).
|
|
3152
|
+
*/
|
|
2936
3153
|
videoAttributes?: Partial<HTMLVideoElement>;
|
|
2937
3154
|
/** {zh}
|
|
2938
3155
|
* @brief 是否启用流式布局。启用流式布局后,播放器会根据屏幕宽度进行自适应调整,以确保在不同屏幕尺寸上都能呈现良好的显示效果。取值如下:
|
|
@@ -2943,6 +3160,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2943
3160
|
* - 如果 `width` 和 `height` 不是 `Number` 类型,默认使用 16:9 比例。
|
|
2944
3161
|
* @default false
|
|
2945
3162
|
*/
|
|
3163
|
+
/** {en}
|
|
3164
|
+
* @brief Whether to enable fluid layout. When enabled, the player adapts its aspect ratio based on `width` / `height` (defaults to 16:9 when they are non-numeric).
|
|
3165
|
+
* @default false
|
|
3166
|
+
*/
|
|
2946
3167
|
fluid?: boolean;
|
|
2947
3168
|
/** {zh}
|
|
2948
3169
|
* @brief 尺寸适配方式。在视频资源初始化之后,根据获取到的 `videoWidth` 和 `videoHeight` 的值对播放器容器宽高比进行调整。取值如下:
|
|
@@ -2951,6 +3172,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2951
3172
|
* - `fixHeight`: 保持容器高度,仅适配宽度。
|
|
2952
3173
|
* @default fixed
|
|
2953
3174
|
*/
|
|
3175
|
+
/** {en}
|
|
3176
|
+
* @brief Container size adaptation mode after video metadata is loaded. `fixed`: keep container ratio; `fixWidth`: adapt height; `fixHeight`: adapt width.
|
|
3177
|
+
* @default fixed
|
|
3178
|
+
*/
|
|
2954
3179
|
fitVideoSize?: "fixWidth" | "fixHeight" | "fixed";
|
|
2955
3180
|
/** {zh}
|
|
2956
3181
|
* @brief 视频画面填充模式,等同于设置{@link https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit CSS object-fit}属性。取值如下:
|
|
@@ -2961,6 +3186,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2961
3186
|
* - `fillHeight`: 填充高度,宽度溢出则裁剪宽度,当播放器容器宽高比大于视频的宽高比,等同于设置CSS `object-fit: cover`。
|
|
2962
3187
|
* @default auto
|
|
2963
3188
|
*/
|
|
3189
|
+
/** {en}
|
|
3190
|
+
* @brief Video fill mode, equivalent to CSS `object-fit`. `auto`: browser default (may produce letterboxing); `fill`: stretch; `cover`: crop to fill; `fillWidth` / `fillHeight`: fill one axis and crop the other.
|
|
3191
|
+
* @default auto
|
|
3192
|
+
*/
|
|
2964
3193
|
videoFillMode?: "auto" | "fillHeight" | "fillWidth" | "fill" | "cover";
|
|
2965
3194
|
/** {zh}
|
|
2966
3195
|
* @brief 是否开启画面和控制栏分离模式。开启时,控制栏将会常驻,与视频画面不重叠。
|
|
@@ -2968,11 +3197,18 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2968
3197
|
* - `false`:关闭
|
|
2969
3198
|
* @default false
|
|
2970
3199
|
*/
|
|
3200
|
+
/** {en}
|
|
3201
|
+
* @brief Whether to separate the video canvas from the controls bar. When enabled, the controls bar is always visible and does not overlap the video.
|
|
3202
|
+
* @default false
|
|
3203
|
+
*/
|
|
2971
3204
|
marginControls?: boolean;
|
|
2972
3205
|
/** {zh}
|
|
2973
3206
|
* @brief 是否启用 X5 内核浏览器的同层播放。
|
|
2974
3207
|
* @default 无
|
|
2975
3208
|
*/
|
|
3209
|
+
/** {en}
|
|
3210
|
+
* @brief Enable same-layer playback for X5 kernel browsers.
|
|
3211
|
+
*/
|
|
2976
3212
|
"x5-video-player-type"?: string;
|
|
2977
3213
|
/** {zh}
|
|
2978
3214
|
* @brief 是否启用 X5 内核浏览器的全屏播放模式。
|
|
@@ -2980,6 +3216,9 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2980
3216
|
* - `false`:停用
|
|
2981
3217
|
* @default 无
|
|
2982
3218
|
*/
|
|
3219
|
+
/** {en}
|
|
3220
|
+
* @brief Whether to enable fullscreen playback mode for X5 kernel browsers.
|
|
3221
|
+
*/
|
|
2983
3222
|
"x5-video-player-fullscreen"?: boolean;
|
|
2984
3223
|
/** {zh}
|
|
2985
3224
|
* @brief X5 内核浏览器的横竖屏控制。取值如下:
|
|
@@ -2988,11 +3227,19 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
2988
3227
|
* - `landscape|portrait`:跟随手机自动旋转
|
|
2989
3228
|
* @default `landscape|portrait`(移动端)
|
|
2990
3229
|
*/
|
|
3230
|
+
/** {en}
|
|
3231
|
+
* @brief Screen orientation for X5 kernel browsers. `landscape`, `portrait`, or `landscape|portrait` (auto-rotate).
|
|
3232
|
+
* @default `landscape|portrait` (mobile)
|
|
3233
|
+
*/
|
|
2991
3234
|
"x5-video-orientation"?: "landscape" | "portrait" | "landscape|portrait";
|
|
2992
3235
|
/** {zh}
|
|
2993
3236
|
* @brief 为播放器配置关键点样式。
|
|
2994
3237
|
* @default -
|
|
2995
3238
|
*/
|
|
3239
|
+
/** {en}
|
|
3240
|
+
* @brief Key point style configuration for the player.
|
|
3241
|
+
* @default -
|
|
3242
|
+
*/
|
|
2996
3243
|
commonStyle?: ICommonStyle;
|
|
2997
3244
|
/** {zh}
|
|
2998
3245
|
* @brief 是否开启音乐播放模式。开启后,您可还通过 `music` 参数对音乐播放器进行配置。取值如下:
|
|
@@ -3000,6 +3247,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3000
3247
|
* - `false`:停用音乐播放模式
|
|
3001
3248
|
* @default false
|
|
3002
3249
|
*/
|
|
3250
|
+
/** {en}
|
|
3251
|
+
* @brief Whether to enable music playback mode. Use `music` for further music player configuration.
|
|
3252
|
+
* @default false
|
|
3253
|
+
*/
|
|
3003
3254
|
isMusic?: boolean;
|
|
3004
3255
|
/** {zh}
|
|
3005
3256
|
* @hidden
|
|
@@ -3020,6 +3271,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3020
3271
|
* - `false`:开启。
|
|
3021
3272
|
* @default false
|
|
3022
3273
|
*/
|
|
3274
|
+
/** {en}
|
|
3275
|
+
* @brief Whether to stop event propagation on the `video` element.
|
|
3276
|
+
* @default false
|
|
3277
|
+
*/
|
|
3023
3278
|
closeVideoStopPropagation?: boolean;
|
|
3024
3279
|
/** {zh}
|
|
3025
3280
|
* @brief 是否开启右键菜单。取值如下:
|
|
@@ -3027,6 +3282,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3027
3282
|
* - `false`:否。
|
|
3028
3283
|
* @default false
|
|
3029
3284
|
*/
|
|
3285
|
+
/** {en}
|
|
3286
|
+
* @brief Whether to enable the right-click context menu.
|
|
3287
|
+
* @default false
|
|
3288
|
+
*/
|
|
3030
3289
|
enableMenu?: boolean;
|
|
3031
3290
|
/**
|
|
3032
3291
|
* @brief 是否禁用 PC 端点击播放器区域切换播放和暂停功能。
|
|
@@ -3112,39 +3371,108 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3112
3371
|
/** {zh}
|
|
3113
3372
|
* @brief 是否开启 HLS 视频的 MSE 模式。仅移动端生效。默认情况下,在移动端使用原生 `video` 播放 HLS 视频。开启后,将采用 MSE 方式播放 HLS 视频,实现更好的兼容性、能控制缓存、节省流量。
|
|
3114
3373
|
* @notes 仅移动端生效,开启后采用MSE方式播放HLS,默认在移动端使用原生video播放hls
|
|
3374
|
+
* @default false
|
|
3375
|
+
*/
|
|
3376
|
+
/** {en}
|
|
3377
|
+
* @brief Whether to use MSE for HLS playback on mobile (default is native `video`). Improves compatibility, cache control, and bandwidth usage.
|
|
3378
|
+
* @default false
|
|
3115
3379
|
*/
|
|
3116
3380
|
enableHlsMSE?: boolean;
|
|
3381
|
+
/** {zh}
|
|
3382
|
+
* @brief 移动端播放 HLS 时优先使用 hls.js 插件(MSE/MMS):
|
|
3383
|
+
* - **Android**:直接启用 hls.js 播放。
|
|
3384
|
+
* - **iOS**:仅在设备支持 `ManagedMediaSource`(iOS 17.1+,即 `VePlayer.isMMSSupported()` 为 `true`)时启用;
|
|
3385
|
+
* 不满足时自动回退至原生 HLS 播放。
|
|
3386
|
+
* 开启后可在移动端解锁多音轨切换、`setAudioOption` 偏好持久化等 hls.js 特有能力。
|
|
3387
|
+
* @default false
|
|
3388
|
+
*/
|
|
3389
|
+
/** {en}
|
|
3390
|
+
* @brief Prefer hls.js (MSE/MMS) for HLS playback on mobile:
|
|
3391
|
+
* - **Android**: always enables hls.js.
|
|
3392
|
+
* - **iOS**: enables hls.js only when `ManagedMediaSource` is supported (iOS 17.1+,
|
|
3393
|
+
* i.e. `VePlayer.isMMSSupported()` returns `true`); falls back to native HLS otherwise.
|
|
3394
|
+
* Unlocks hls.js-specific features such as multi-audio-track switching on mobile.
|
|
3395
|
+
* @default false
|
|
3396
|
+
*/
|
|
3397
|
+
enableMobileHlsPlugin?: boolean;
|
|
3398
|
+
/** {zh}
|
|
3399
|
+
* @brief 是否启用 {@link https://hlsjs.video-dev.org/ hls.js} 插件播放HLS视频,默认为true,设置为false后,PC端播放HLS使用自研hls插件播放HLS视频
|
|
3400
|
+
* @default true
|
|
3401
|
+
*/
|
|
3402
|
+
/** {en}
|
|
3403
|
+
* @brief Whether to use the hls.js plugin for HLS playback on PC. When `false`, the built-in HLS adapter is used instead.
|
|
3404
|
+
* @default true
|
|
3405
|
+
*/
|
|
3406
|
+
enableHlsJs?: boolean;
|
|
3117
3407
|
/** {zh}
|
|
3118
3408
|
* @brief 在 PC Safari 上是否 HLS 插件播放视频。取值如下:
|
|
3119
3409
|
* - `true`:使用 HLS 插件。SDK 会自动加载 HLS 插件。
|
|
3120
3410
|
* - `false`:不使用 HLS 插件。
|
|
3121
3411
|
* @default true
|
|
3122
3412
|
*/
|
|
3413
|
+
/** {en}
|
|
3414
|
+
* @brief Whether to use the HLS plugin on PC Safari. When `true`, the SDK loads the HLS plugin automatically.
|
|
3415
|
+
* @default true
|
|
3416
|
+
*/
|
|
3123
3417
|
useHlsPluginForSafari?: boolean;
|
|
3124
3418
|
/** {zh}
|
|
3125
3419
|
* @brief 是否开启 MP4 视频的 MSE 模式。开启后,将采用 MSE 方式播放 MP4,实现精确的 Seek 加载、视频的无缝切换、流量节省等功能。
|
|
3126
3420
|
* @default false
|
|
3127
3421
|
*/
|
|
3422
|
+
/** {en}
|
|
3423
|
+
* @brief Whether to use MSE for MP4 playback, enabling accurate seek, seamless stream switching, and bandwidth savings.
|
|
3424
|
+
* @default false
|
|
3425
|
+
*/
|
|
3128
3426
|
enableMp4MSE?: boolean;
|
|
3129
3427
|
/** {zh}
|
|
3130
3428
|
* @brief 播放地址列表。
|
|
3131
3429
|
* @default -
|
|
3132
3430
|
*/
|
|
3431
|
+
/** {en}
|
|
3432
|
+
* @brief Playlist of video streams with multi-definition and multi-line support.
|
|
3433
|
+
* @default -
|
|
3434
|
+
*/
|
|
3133
3435
|
playList?: Stream[];
|
|
3134
3436
|
/** {zh}
|
|
3135
3437
|
* @brief 默认清晰度。仅当 `playList` 有值时生效。
|
|
3136
3438
|
* @default playList第一项
|
|
3137
3439
|
*/
|
|
3440
|
+
/** {en}
|
|
3441
|
+
* @brief Default definition. Effective only when `playList` is set.
|
|
3442
|
+
* @default First item of playList
|
|
3443
|
+
*/
|
|
3138
3444
|
defaultDefinition?: string;
|
|
3445
|
+
/** {zh}
|
|
3446
|
+
* @brief 起播默认音轨偏好。字段与 `switchAudioTrack()` 参数一致,按需填写一个或多个字段进行匹配。
|
|
3447
|
+
* hls.js 路径下通过 `hls.setAudioOption()` 应用,支持跨清晰度自动持久化;
|
|
3448
|
+
* iOS 原生路径按 `lang` 字段匹配。未匹配到时沿用 manifest 默认轨道。
|
|
3449
|
+
* @default -
|
|
3450
|
+
*/
|
|
3451
|
+
/** {en}
|
|
3452
|
+
* @brief Default audio track preference at playback start. Accepts the same fields as
|
|
3453
|
+
* `switchAudioTrack()`. Applied via `hls.setAudioOption()` on the hls.js path (persists
|
|
3454
|
+
* across quality switches); matched by `lang` on the iOS native path.
|
|
3455
|
+
* Falls back to the manifest default when no match is found.
|
|
3456
|
+
* @default -
|
|
3457
|
+
*/
|
|
3458
|
+
audioPreference?: AudioTrackOption;
|
|
3139
3459
|
/** {zh}
|
|
3140
3460
|
* @brief 插件,可自行选择安装的插件,支持{@link https://h5player.bytedance.com/plugins/ 西瓜播放器插件}。
|
|
3141
3461
|
* @default -
|
|
3142
3462
|
*/
|
|
3463
|
+
/** {en}
|
|
3464
|
+
* @brief Additional plugins to install. Compatible with XGPlayer plugins.
|
|
3465
|
+
* @default -
|
|
3466
|
+
*/
|
|
3143
3467
|
plugins?: any[];
|
|
3144
3468
|
/** {zh}
|
|
3145
3469
|
* @brief 用于禁用插件。VePlayer 内置了一些常用的功能插件。如需禁用某一内置插件,可传入插件名称(不区分大小写)。
|
|
3146
3470
|
* @default []
|
|
3147
3471
|
*/
|
|
3472
|
+
/** {en}
|
|
3473
|
+
* @brief List of built-in plugin names to disable (case-insensitive).
|
|
3474
|
+
* @default []
|
|
3475
|
+
*/
|
|
3148
3476
|
ignores?: string[];
|
|
3149
3477
|
/** {zh}
|
|
3150
3478
|
* @brief 默认配置
|
|
@@ -3187,6 +3515,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3187
3515
|
* @default -
|
|
3188
3516
|
* @notes 插件可以从{@link https://www.volcengine.com/docs/4/67077 集成SDK} 章节中下载SDK离线包获取
|
|
3189
3517
|
*/
|
|
3518
|
+
/** {en}
|
|
3519
|
+
* @brief Fallback URL map for UMD plugin dependencies when the default CDN is unreachable. Supported keys: `hls`, `flv`, `XGVideo`, `hlsEncrypt`, `dash`, `mp4Encrypt`, `danmujs`, `danmuMask`, `subtitle`.
|
|
3520
|
+
* @default -
|
|
3521
|
+
*/
|
|
3190
3522
|
umdUrlMap?: Record<string, string>;
|
|
3191
3523
|
/**
|
|
3192
3524
|
* @brief 唯一 ID,用于[私有加密方案](https://www.volcengine.com/docs/4/106524)。
|
|
@@ -3204,6 +3536,10 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3204
3536
|
* @listtip - 移动端浏览器不支持 FLV 格式,如果需要播放该格式的视频,请开启软解。
|
|
3205
3537
|
* - 软解播放的解码操作依赖设备 CPU,播放高码率、高分辨率的视频时,对 CPU 占用率较高。
|
|
3206
3538
|
*/
|
|
3539
|
+
/** {en}
|
|
3540
|
+
* @brief Whether to enable software decoding. Required for FLV on mobile. High CPU usage on high-bitrate / high-resolution videos.
|
|
3541
|
+
* @default false
|
|
3542
|
+
*/
|
|
3207
3543
|
useSoftDecoding?: boolean;
|
|
3208
3544
|
/** {zh}
|
|
3209
3545
|
* @brief 是否开启 H.265 自动降级模式。开启 H.265 兼容模式后,VePlayer 会在不支持 H.265 硬解的浏览器环境下,自动降级为兼容模式。取值如下:
|
|
@@ -3212,11 +3548,19 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3212
3548
|
* - `false`:不开启 H.265 自动降级模式。
|
|
3213
3549
|
* @default false
|
|
3214
3550
|
*/
|
|
3551
|
+
/** {en}
|
|
3552
|
+
* @brief Whether to enable H.265 auto-degrade mode. When enabled, VePlayer falls back to a compatible mode in browsers that do not support H.265 hardware decoding.
|
|
3553
|
+
* @default false
|
|
3554
|
+
*/
|
|
3215
3555
|
enableH265Degrade?: boolean;
|
|
3216
3556
|
/** {zh}
|
|
3217
3557
|
* @brief 是否开启视频播放地址过期检测。开启后,播放器会轮询地将播放器所在的客户端时间与过期时间戳进行比较,以判断视频播放地址是否过期。
|
|
3218
3558
|
* @default false
|
|
3219
3559
|
*/
|
|
3560
|
+
/** {en}
|
|
3561
|
+
* @brief Whether to enable URL expiry polling. The player periodically compares the client time against `urlExpireTimestamp`.
|
|
3562
|
+
* @default false
|
|
3563
|
+
*/
|
|
3220
3564
|
enableUrlExpireCheck?: boolean;
|
|
3221
3565
|
/**
|
|
3222
3566
|
* @brief 地址的过期时间戳,单位秒(s),vid模式下不用输入,播放器自动获取。如果是火山引擎的CDN分发地址,在不传入过期时间戳时,则需指定urlType,支持{@link https://www.volcengine.com/docs/4/177191 A-E类型},其他云厂商或者业务服务器存储的地址不支持。
|
|
@@ -3237,11 +3581,19 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3237
3581
|
* @brief 播放源过期的回调函数。可用来更新播放源数据。
|
|
3238
3582
|
* @default -
|
|
3239
3583
|
*/
|
|
3584
|
+
/** {en}
|
|
3585
|
+
* @brief Callback invoked when the playback source expires. Use it to refresh source data.
|
|
3586
|
+
* @default -
|
|
3587
|
+
*/
|
|
3240
3588
|
onMediaExpired?: () => Promise<SourceConfig>;
|
|
3241
3589
|
/** {zh}
|
|
3242
3590
|
* @brief 临时播放 Token 过期时的回调函数,可用来更新临时播放 Token。
|
|
3243
3591
|
* @default -
|
|
3244
3592
|
*/
|
|
3593
|
+
/** {en}
|
|
3594
|
+
* @brief Callback invoked when the temporary play token expires. Use it to refresh the token.
|
|
3595
|
+
* @default -
|
|
3596
|
+
*/
|
|
3245
3597
|
onTokenExpired?: () => Promise<IPlayAuthTokenConfig>;
|
|
3246
3598
|
/** {zh}
|
|
3247
3599
|
* @hidden
|
|
@@ -3256,57 +3608,163 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3256
3608
|
* @brief 是否开启日志打印。
|
|
3257
3609
|
* @default false
|
|
3258
3610
|
*/
|
|
3611
|
+
/** {en}
|
|
3612
|
+
* @brief Whether to enable debug log output.
|
|
3613
|
+
* @default false
|
|
3614
|
+
*/
|
|
3259
3615
|
debug?: boolean;
|
|
3260
3616
|
/** {zh}
|
|
3261
3617
|
* @brief 播放器报错信息。支持配置播放异常时显示的异常文案、图片以及是否提供刷新按钮等。
|
|
3262
3618
|
* @default -
|
|
3263
3619
|
*/
|
|
3620
|
+
/** {en}
|
|
3621
|
+
* @brief Error UI configuration. Controls the error message, image, and refresh button displayed on playback failure.
|
|
3622
|
+
* @default -
|
|
3623
|
+
*/
|
|
3264
3624
|
sdkErrorPlugin?: ISdkErrorConfig;
|
|
3265
3625
|
/** {zh}
|
|
3266
|
-
* @brief
|
|
3267
|
-
* @
|
|
3268
|
-
* @default -
|
|
3269
|
-
* @hidden
|
|
3626
|
+
* @brief 非 MSE 播放模式下(含加密 HLS),触发媒体错误后的窗口内最大重试次数。
|
|
3627
|
+
* @default 3
|
|
3270
3628
|
*/
|
|
3271
3629
|
/** {en}
|
|
3272
|
-
* @
|
|
3630
|
+
* @brief Maximum number of retries within the sliding window for media errors in non-MSE mode (including encrypted HLS).
|
|
3631
|
+
* @default 3
|
|
3273
3632
|
*/
|
|
3274
|
-
|
|
3633
|
+
oriErrRetryCount?: number;
|
|
3275
3634
|
/** {zh}
|
|
3276
|
-
* @brief
|
|
3277
|
-
* @default
|
|
3635
|
+
* @brief 重试滑动窗口时长(ms)。窗口内超过 `oriErrRetryCount` 次重试后停止并进行错误诊断。
|
|
3636
|
+
* @default 10000
|
|
3278
3637
|
*/
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
* @
|
|
3282
|
-
* @notes 需要先引入DefinitionDemotePlugin插件,plugins: [VePlayer.DefinitionDemotePlugin]
|
|
3638
|
+
/** {en}
|
|
3639
|
+
* @brief Sliding window duration (ms) for retry counting. Retries stop and error analysis begins once `oriErrRetryCount` is reached within the window.
|
|
3640
|
+
* @default 10000
|
|
3283
3641
|
*/
|
|
3284
|
-
|
|
3642
|
+
oriErrRetryCycle?: number;
|
|
3285
3643
|
/** {zh}
|
|
3286
|
-
* @
|
|
3287
|
-
* @
|
|
3288
|
-
* @default -
|
|
3644
|
+
* @brief 重试指数退避基础延迟(ms)。第 n 次重试延迟为 `oriErrRetryBaseDelay * 2^(n-1)`。
|
|
3645
|
+
* @default 500
|
|
3289
3646
|
*/
|
|
3290
3647
|
/** {en}
|
|
3291
|
-
* @
|
|
3648
|
+
* @brief Base delay (ms) for exponential backoff between retries. The delay for the nth retry is `oriErrRetryBaseDelay * 2^(n-1)`.
|
|
3649
|
+
* @default 500
|
|
3292
3650
|
*/
|
|
3293
|
-
|
|
3651
|
+
oriErrRetryBaseDelay?: number;
|
|
3294
3652
|
/** {zh}
|
|
3295
|
-
* @brief
|
|
3296
|
-
* @default
|
|
3653
|
+
* @brief 最大总重试次数(跨窗口累计)。设为 `0` 表示不限制。
|
|
3654
|
+
* @default 0
|
|
3297
3655
|
*/
|
|
3298
|
-
|
|
3299
|
-
|
|
3656
|
+
/** {en}
|
|
3657
|
+
* @brief Maximum total retry count accumulated across all windows. Set to `0` to disable the limit.
|
|
3658
|
+
* @default 0
|
|
3659
|
+
*/
|
|
3660
|
+
oriErrMaxTotalRetry?: number;
|
|
3661
|
+
/** {zh}
|
|
3662
|
+
* @brief 是否在重试耗尽后发起错误诊断请求,以细化错误码。
|
|
3663
|
+
* @default true
|
|
3664
|
+
*/
|
|
3665
|
+
/** {en}
|
|
3666
|
+
* @brief Whether to perform error analysis after retries are exhausted, to refine the error code.
|
|
3667
|
+
* @default true
|
|
3668
|
+
*/
|
|
3669
|
+
needSyncAnalyzeError?: boolean;
|
|
3670
|
+
/** {zh}
|
|
3671
|
+
* @brief 网络诊断请求超时时间(ms)。
|
|
3672
|
+
* @default 3000
|
|
3673
|
+
*/
|
|
3674
|
+
/** {en}
|
|
3675
|
+
* @brief Timeout (ms) for the network analysis request.
|
|
3676
|
+
* @default 3000
|
|
3677
|
+
*/
|
|
3678
|
+
analyzeTimeout?: number;
|
|
3679
|
+
/** {zh}
|
|
3680
|
+
* @brief 需要忽略、不上报的错误码列表。
|
|
3681
|
+
* @default []
|
|
3682
|
+
*/
|
|
3683
|
+
/** {en}
|
|
3684
|
+
* @brief List of error codes to suppress and not report.
|
|
3685
|
+
* @default []
|
|
3686
|
+
*/
|
|
3687
|
+
ignoreErrorCodes?: Array<string | number>;
|
|
3688
|
+
/** {zh}
|
|
3689
|
+
* @brief PC 端音频轨道切换插件配置。传 `false` 可禁用该插件。
|
|
3690
|
+
* @notes 仅在多音轨视频中生效;单音轨时插件自动隐藏。
|
|
3691
|
+
* @default -
|
|
3692
|
+
*/
|
|
3693
|
+
/** {en}
|
|
3694
|
+
* @brief PC audio track selector plugin configuration. Pass `false` to disable. Only effective for multi-track videos.
|
|
3695
|
+
* @default -
|
|
3696
|
+
*/
|
|
3697
|
+
AudioTrack?: IAudioTrackConfig | false;
|
|
3698
|
+
/** {zh}
|
|
3699
|
+
* @brief 移动端音频轨道切换插件配置。传 `false` 可禁用该插件。
|
|
3700
|
+
* @notes 仅在多音轨视频中生效;单音轨时插件自动隐藏。
|
|
3701
|
+
* @default -
|
|
3702
|
+
*/
|
|
3703
|
+
/** {en}
|
|
3704
|
+
* @brief Mobile audio track selector plugin configuration. Pass `false` to disable. Only effective for multi-track videos.
|
|
3705
|
+
* @default -
|
|
3706
|
+
*/
|
|
3707
|
+
AudioTrackMobile?: IAudioTrackMobileConfig | false;
|
|
3708
|
+
/** {zh}
|
|
3709
|
+
* @brief rtm配置,配置rtm拉流参数
|
|
3710
|
+
* @notes 传入rtm流url时才生效
|
|
3711
|
+
* @default -
|
|
3712
|
+
* @hidden
|
|
3713
|
+
*/
|
|
3714
|
+
/** {en}
|
|
3715
|
+
* @hidden
|
|
3716
|
+
*/
|
|
3717
|
+
rtm?: IRtmConfig;
|
|
3718
|
+
/** {zh}
|
|
3719
|
+
* @brief 弹幕及面板配置。支持配置弹幕文字大小、透明度、展示区域等参数。
|
|
3720
|
+
* @default -
|
|
3721
|
+
*/
|
|
3722
|
+
/** {en}
|
|
3723
|
+
* @brief Danmaku (bullet comment) and panel configuration. Supports font size, opacity, display area, etc.
|
|
3724
|
+
* @default -
|
|
3725
|
+
*/
|
|
3726
|
+
DanmuPlugin?: IDanmuConfig | boolean;
|
|
3727
|
+
/** {zh}
|
|
3728
|
+
* @brief 清晰度降级配置。
|
|
3729
|
+
* @notes 需要先引入DefinitionDemotePlugin插件,plugins: [VePlayer.DefinitionDemotePlugin]
|
|
3730
|
+
*/
|
|
3731
|
+
/** {en}
|
|
3732
|
+
* @brief Definition auto-demote configuration. Requires `DefinitionDemotePlugin` in `plugins`.
|
|
3733
|
+
*/
|
|
3734
|
+
DefinitionDemotePlugin?: IDefinitionDemotePlugin;
|
|
3735
|
+
/** {zh}
|
|
3736
|
+
* @hidden
|
|
3737
|
+
* @brief DASH 播放配置项
|
|
3738
|
+
* @default -
|
|
3739
|
+
*/
|
|
3740
|
+
/** {en}
|
|
3741
|
+
* @hidden
|
|
3742
|
+
*/
|
|
3743
|
+
DASHPlugin?: Partial<IDashPluginConfig>;
|
|
3744
|
+
/** {zh}
|
|
3745
|
+
* @brief HLS 加密播放配置。
|
|
3746
|
+
* @default -
|
|
3747
|
+
*/
|
|
3748
|
+
/** {en}
|
|
3749
|
+
* @brief Encrypted HLS playback configuration.
|
|
3750
|
+
* @default -
|
|
3751
|
+
*/
|
|
3752
|
+
EncryptHlsPlugin?: Partial<IEncryptHlsPluginConfig> | boolean;
|
|
3753
|
+
/** {zh}
|
|
3300
3754
|
* @brief 质量日志上报配置。
|
|
3301
3755
|
* @default -
|
|
3302
3756
|
*/
|
|
3757
|
+
/** {en}
|
|
3758
|
+
* @brief Quality metrics log reporting configuration.
|
|
3759
|
+
* @default -
|
|
3760
|
+
*/
|
|
3303
3761
|
vodLogOpts?: Partial<IVodLogOptsConfig>;
|
|
3304
3762
|
/** {zh}
|
|
3305
3763
|
* @brief 日志tea的id,一般不需要配置,播放器会自动设置。
|
|
3306
3764
|
* @default 火山国内:4951,海外:323254
|
|
3307
3765
|
*/
|
|
3308
3766
|
/** {en}
|
|
3309
|
-
* @brief The id of the log tea. Generally, no configuration is required and the player will automatically set it
|
|
3767
|
+
* @brief The id of the log tea. Generally, no configuration is required and the player will automatically set it.
|
|
3310
3768
|
* @default 323254
|
|
3311
3769
|
*/
|
|
3312
3770
|
logTeaAppId?: number;
|
|
@@ -3323,11 +3781,19 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3323
3781
|
* @brief 多码率自适应播放配置。
|
|
3324
3782
|
* @default -
|
|
3325
3783
|
*/
|
|
3784
|
+
/** {en}
|
|
3785
|
+
* @brief Adaptive bitrate (ABR) playback configuration.
|
|
3786
|
+
* @default -
|
|
3787
|
+
*/
|
|
3326
3788
|
autoBitrateOpts?: IAutoBitrateOpts;
|
|
3327
3789
|
/** {zh}
|
|
3328
3790
|
* @brief 动态 Buffer 配置。
|
|
3329
3791
|
* @default -
|
|
3330
3792
|
*/
|
|
3793
|
+
/** {en}
|
|
3794
|
+
* @brief Dynamic buffer range configuration.
|
|
3795
|
+
* @default -
|
|
3796
|
+
*/
|
|
3331
3797
|
adaptRange?: IAdaptRange;
|
|
3332
3798
|
/** {zh}
|
|
3333
3799
|
* @brief 视频时长。
|
|
@@ -3342,45 +3808,73 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3342
3808
|
* @brief 外挂字幕配置。
|
|
3343
3809
|
* @default -
|
|
3344
3810
|
*/
|
|
3811
|
+
/** {en}
|
|
3812
|
+
* @brief External subtitle configuration.
|
|
3813
|
+
* @default -
|
|
3814
|
+
*/
|
|
3345
3815
|
Subtitle?: ISubtitleConfig;
|
|
3346
3816
|
/** {zh}
|
|
3347
3817
|
* @type {IMemoryPlayConfig}
|
|
3348
3818
|
* @memberof IPlayerConfig
|
|
3349
3819
|
* @brief 记忆播放配置。
|
|
3350
3820
|
*/
|
|
3821
|
+
/** {en}
|
|
3822
|
+
* @brief Resume playback (memory play) configuration.
|
|
3823
|
+
*/
|
|
3351
3824
|
MemoryPlay?: IMemoryPlayConfig | boolean;
|
|
3352
3825
|
/** {zh}
|
|
3353
3826
|
* @type {IMusicConfig}
|
|
3354
3827
|
* @memberof IPlayerConfig
|
|
3355
3828
|
* @brief 音乐播放器配置。
|
|
3356
3829
|
*/
|
|
3830
|
+
/** {en}
|
|
3831
|
+
* @brief Music player configuration. Effective when `isMusic` is `true`.
|
|
3832
|
+
*/
|
|
3357
3833
|
music?: IMusicConfig;
|
|
3358
3834
|
/** {zh}
|
|
3359
3835
|
* @type {IMusicConfig}
|
|
3360
3836
|
* @memberof IPlayerConfig
|
|
3361
3837
|
* @brief 自动播放配置。
|
|
3362
3838
|
*/
|
|
3839
|
+
/** {en}
|
|
3840
|
+
* @brief Autoplay plugin configuration.
|
|
3841
|
+
*/
|
|
3363
3842
|
AutoplayPlugin?: IAutoplayPluginConfig;
|
|
3364
3843
|
/** {zh}
|
|
3365
3844
|
* @type { IPlayListConfig }
|
|
3366
3845
|
* @memberof IPlayerConfig
|
|
3367
3846
|
* @brief 播放列表配置。
|
|
3368
3847
|
*/
|
|
3848
|
+
/** {en}
|
|
3849
|
+
* @brief Playlist plugin configuration.
|
|
3850
|
+
*/
|
|
3369
3851
|
playListPlugin?: IPlayListConfig;
|
|
3370
3852
|
/** {zh}
|
|
3371
3853
|
* @brief 动态水印配置。
|
|
3372
3854
|
* @default -
|
|
3373
3855
|
*/
|
|
3856
|
+
/** {en}
|
|
3857
|
+
* @brief Dynamic watermark configuration.
|
|
3858
|
+
* @default -
|
|
3859
|
+
*/
|
|
3374
3860
|
dynamicwatermark?: IWatermarkConfig;
|
|
3375
3861
|
/** {zh}
|
|
3376
3862
|
* @brief 进度条预览缩略图配置。
|
|
3377
3863
|
* @default -
|
|
3378
3864
|
*/
|
|
3865
|
+
/** {en}
|
|
3866
|
+
* @brief Progress bar thumbnail preview configuration.
|
|
3867
|
+
* @default -
|
|
3868
|
+
*/
|
|
3379
3869
|
thumbnail?: IThumbnailConfig;
|
|
3380
3870
|
/** {zh}
|
|
3381
3871
|
* @brief 进度条标记配置
|
|
3382
3872
|
* @default -
|
|
3383
3873
|
*/
|
|
3874
|
+
/** {en}
|
|
3875
|
+
* @brief Progress bar dot marker configuration.
|
|
3876
|
+
* @default -
|
|
3877
|
+
*/
|
|
3384
3878
|
progressDot?: IDot[];
|
|
3385
3879
|
/** {zh}
|
|
3386
3880
|
* @brief 移动端下倍速、清晰度等选择弹窗的样式
|
|
@@ -3464,6 +3958,10 @@ export interface IDefaultConfig {
|
|
|
3464
3958
|
* 如果是对象则可以对音量控制插件进行各型特性单独配置
|
|
3465
3959
|
* @default 0.6
|
|
3466
3960
|
*/
|
|
3961
|
+
/** {en}
|
|
3962
|
+
* @brief Volume configuration. A number sets the default volume [0, 1]; an object allows per-feature configuration.
|
|
3963
|
+
* @default 0.6
|
|
3964
|
+
*/
|
|
3467
3965
|
volume?: IVolume;
|
|
3468
3966
|
/** {zh}
|
|
3469
3967
|
* @brief 弹幕插件配置
|
|
@@ -3471,6 +3969,9 @@ export interface IDefaultConfig {
|
|
|
3471
3969
|
* @type {*}
|
|
3472
3970
|
* @memberof IDefaultConfig
|
|
3473
3971
|
*/
|
|
3972
|
+
/** {en}
|
|
3973
|
+
* @brief Danmaku plugin configuration.
|
|
3974
|
+
*/
|
|
3474
3975
|
DanmuPlugin?: any;
|
|
3475
3976
|
/** {zh}
|
|
3476
3977
|
* @brief 字幕插件配置
|
|
@@ -3478,6 +3979,9 @@ export interface IDefaultConfig {
|
|
|
3478
3979
|
* @type {*}
|
|
3479
3980
|
* @memberof IDefaultConfig
|
|
3480
3981
|
*/
|
|
3982
|
+
/** {en}
|
|
3983
|
+
* @brief Live subtitle icon plugin configuration.
|
|
3984
|
+
*/
|
|
3481
3985
|
LiveSubtitlesIconPlugin?: any;
|
|
3482
3986
|
}
|
|
3483
3987
|
/** {zh}
|
|
@@ -3490,11 +3994,19 @@ export interface IPlayAuthTokenConfig {
|
|
|
3490
3994
|
* @brief 应用服务端生成的临时播放凭证。
|
|
3491
3995
|
* @default -
|
|
3492
3996
|
*/
|
|
3997
|
+
/** {en}
|
|
3998
|
+
* @brief Temporary play token generated by the app server.
|
|
3999
|
+
* @default -
|
|
4000
|
+
*/
|
|
3493
4001
|
playAuthToken: string;
|
|
3494
4002
|
/** {zh}
|
|
3495
4003
|
* @brief 默认清晰度。对应 [GetPlayInfo](https://www.volcengine.com/docs/4/2918) 接口返回的 `Definition`。为空时默认为接口返回的最高清晰度。
|
|
3496
4004
|
* @default -
|
|
3497
4005
|
*/
|
|
4006
|
+
/** {en}
|
|
4007
|
+
* @brief Default definition, corresponding to `Definition` in the GetPlayInfo response. Defaults to the highest available when empty.
|
|
4008
|
+
* @default -
|
|
4009
|
+
*/
|
|
3498
4010
|
defaultDefinition?: string;
|
|
3499
4011
|
/** {zh}
|
|
3500
4012
|
* @brief 获取播放地址的请求域名。
|
|
@@ -3514,6 +4026,10 @@ export interface IPlayAuthTokenConfig {
|
|
|
3514
4026
|
* @default false
|
|
3515
4027
|
* @listtip 请确保您已在视频点播控制台中生成和设置封面图,详见[封面图和封面候选](https://www.volcengine.com/docs/4/5335)。
|
|
3516
4028
|
*/
|
|
4029
|
+
/** {en}
|
|
4030
|
+
* @brief Whether to use the poster image set in the VOD console.
|
|
4031
|
+
* @default false
|
|
4032
|
+
*/
|
|
3517
4033
|
needPoster?: boolean;
|
|
3518
4034
|
/** {zh}
|
|
3519
4035
|
* @brief 是否使用您在视频点播控制台上生成的雪碧图。取值如下:
|
|
@@ -3523,6 +4039,10 @@ export interface IPlayAuthTokenConfig {
|
|
|
3523
4039
|
* @default false
|
|
3524
4040
|
* @listtip 请确保您已通过视频点播媒体处理服务生成雪碧图,详见[雪碧图](https://www.volcengine.com/docs/4/1171758)。
|
|
3525
4041
|
*/
|
|
4042
|
+
/** {en}
|
|
4043
|
+
* @brief Whether to use the sprite sheet (thumbnail) generated by the VOD media processing service.
|
|
4044
|
+
* @default false
|
|
4045
|
+
*/
|
|
3526
4046
|
needThumbs?: boolean;
|
|
3527
4047
|
/** {zh}
|
|
3528
4048
|
* @brief 是否使用您在视频点播控制台上生成的蒙版弹幕。取值如下:
|
|
@@ -3532,17 +4052,29 @@ export interface IPlayAuthTokenConfig {
|
|
|
3532
4052
|
* @default false
|
|
3533
4053
|
* @listtip 请确保您已通过视频点播媒体处理服务生成蒙版弹幕。
|
|
3534
4054
|
*/
|
|
4055
|
+
/** {en}
|
|
4056
|
+
* @brief Whether to use the masked danmaku generated by the VOD media processing service.
|
|
4057
|
+
* @default false
|
|
4058
|
+
*/
|
|
3535
4059
|
needBarrageMask?: boolean;
|
|
3536
4060
|
/** {zh}
|
|
3537
4061
|
* @brief 是否需要获取展示多个清晰度。
|
|
3538
4062
|
* @default true
|
|
3539
4063
|
*/
|
|
4064
|
+
/** {en}
|
|
4065
|
+
* @brief Whether to fetch and display multiple definition options.
|
|
4066
|
+
* @default true
|
|
4067
|
+
*/
|
|
3540
4068
|
needDefinitionList?: boolean;
|
|
3541
4069
|
/** {zh}
|
|
3542
4070
|
* @briefhls标准加密播放所需要的keyToken
|
|
3543
4071
|
* @default -
|
|
3544
4072
|
* @brief 用于 HLS 标准加密播放的 keyToken。
|
|
3545
4073
|
*/
|
|
4074
|
+
/** {en}
|
|
4075
|
+
* @brief Key token required for HLS standard-encrypted playback.
|
|
4076
|
+
* @default -
|
|
4077
|
+
*/
|
|
3546
4078
|
keyToken?: string;
|
|
3547
4079
|
/** {zh}
|
|
3548
4080
|
* @hidden
|
|
@@ -3557,6 +4089,10 @@ export interface IPlayAuthTokenConfig {
|
|
|
3557
4089
|
* - `unionInfo`: 由 `unionId` 生成的 `unionInfo`,用来加密`PrivateDrmAuthToken`。
|
|
3558
4090
|
* @default -
|
|
3559
4091
|
*/
|
|
4092
|
+
/** {en}
|
|
4093
|
+
* @brief Async callback to fetch `PrivateDrmAuthToken`. Receives `playAuthIds` (comma-separated key IDs), `vid`, and `unionInfo`.
|
|
4094
|
+
* @default -
|
|
4095
|
+
*/
|
|
3560
4096
|
getDrmAuthToken?: (playAuthIds: string, vid: string, unionInfo: string) => Promise<string>;
|
|
3561
4097
|
/**
|
|
3562
4098
|
* @brief 商业DRM 获取license的token
|
|
@@ -3583,6 +4119,10 @@ export interface IPlayAuthTokenConfig {
|
|
|
3583
4119
|
* 具体可传参数见{@link https://www.volcengine.com/docs/4/65659 签发 PlayAuthToken}
|
|
3584
4120
|
* @default -
|
|
3585
4121
|
*/
|
|
4122
|
+
/** {en}
|
|
4123
|
+
* @brief Extra pass-through query parameters (e.g. `{ aid: 1234 }`). Parameters from `playAuthToken` take highest priority.
|
|
4124
|
+
* @default -
|
|
4125
|
+
*/
|
|
3586
4126
|
reqParams?: Record<string, number | string | boolean>;
|
|
3587
4127
|
/** {zh}
|
|
3588
4128
|
* @brief 定义清晰度的映射。
|
|
@@ -3614,24 +4154,46 @@ export interface IPlayAuthTokenConfig {
|
|
|
3614
4154
|
* @brief 点播服务发生 502 错误时的重试次数。
|
|
3615
4155
|
* @default 1
|
|
3616
4156
|
*/
|
|
4157
|
+
/** {en}
|
|
4158
|
+
* @brief Number of retries when the VOD service returns a 502 error.
|
|
4159
|
+
* @default 1
|
|
4160
|
+
*/
|
|
3617
4161
|
retryCount?: number;
|
|
3618
4162
|
/** {zh}
|
|
3619
4163
|
* @brief 清晰度自动降级开启时的自动档位,对应{@link https://www.volcengine.com/docs/4/2918 GetPlayInfo}返回的Definition字段
|
|
3620
4164
|
* @notes 如果指定的清晰度,playAuthToken从服务端返回的清晰度列表中不存在该清晰度,则此参数无效。
|
|
3621
4165
|
* @default -
|
|
3622
4166
|
*/
|
|
4167
|
+
/** {en}
|
|
4168
|
+
* @brief Auto-demote definition target when definition auto-demote is enabled. Corresponds to `Definition` in GetPlayInfo response.
|
|
4169
|
+
* @default -
|
|
4170
|
+
*/
|
|
3623
4171
|
autoDemoteDefinition?: string;
|
|
3624
4172
|
/** {zh}
|
|
3625
4173
|
* @brief 开启清晰度自动降级(`isNeedAutoDemote` 为 `true`)时的自动档位对应的多语言文案 key,取值对应 `languages` 字段中各语种的 `key`。
|
|
3626
4174
|
* @notes 如果指定的清晰度,playAuthToken从服务端返回的清晰度列表中不存在该清晰度,则此参数无效。
|
|
3627
4175
|
* @default -
|
|
3628
4176
|
*/
|
|
4177
|
+
/** {en}
|
|
4178
|
+
* @brief i18n key for the auto-demote definition label, mapping into `languages`.
|
|
4179
|
+
* @default -
|
|
4180
|
+
*/
|
|
3629
4181
|
autoDemoteDefinitionTextKey?: string;
|
|
3630
4182
|
/** {zh}
|
|
3631
4183
|
* @brief 视频地址请求时携带的额外query参数
|
|
3632
4184
|
* @notes 一般用于携带HLS标准加密播放携带
|
|
3633
4185
|
*/
|
|
4186
|
+
/** {en}
|
|
4187
|
+
* @brief Extra query parameters appended to video URL requests. Typically used for HLS standard-encrypted playback.
|
|
4188
|
+
*/
|
|
3634
4189
|
urlQueryParams?: Record<string, string>;
|
|
4190
|
+
/** {zh}
|
|
4191
|
+
* @brief HLS 播放时是否使用master m3u8 地址作为播放源
|
|
4192
|
+
*/
|
|
4193
|
+
/** {en}
|
|
4194
|
+
* @brief Whether to use the master m3u8 URL as the playback source for HLS.
|
|
4195
|
+
*/
|
|
4196
|
+
useMasterM3u8?: boolean;
|
|
3635
4197
|
}
|
|
3636
4198
|
/** {zh}
|
|
3637
4199
|
* @list Options
|
|
@@ -3736,6 +4298,10 @@ export interface IPIPConfig extends IPluginConfig {
|
|
|
3736
4298
|
* - `false`:不显示画中画按钮。
|
|
3737
4299
|
* @default false
|
|
3738
4300
|
*/
|
|
4301
|
+
/** {en}
|
|
4302
|
+
* @brief Whether to show the picture-in-picture button.
|
|
4303
|
+
* @default false
|
|
4304
|
+
*/
|
|
3739
4305
|
showIcon?: boolean;
|
|
3740
4306
|
/** {zh}
|
|
3741
4307
|
* @brief 是否优先使用[网页画中画](https://developer.mozilla.org/en-US/docs/Web/API/DocumentPictureInPicture)。
|
|
@@ -3745,26 +4311,46 @@ export interface IPIPConfig extends IPluginConfig {
|
|
|
3745
4311
|
* @default false
|
|
3746
4312
|
* @listtip 仅浏览器支持 `DocumentPictureInPicture` 时才生效。
|
|
3747
4313
|
*/
|
|
4314
|
+
/** {en}
|
|
4315
|
+
* @brief Whether to prefer `DocumentPictureInPicture` (web PiP) when available.
|
|
4316
|
+
* @default false
|
|
4317
|
+
*/
|
|
3748
4318
|
preferDocument?: boolean;
|
|
3749
4319
|
/** {zh}
|
|
3750
4320
|
* @brief 网页画中画模式下窗口的宽度。
|
|
3751
4321
|
* @default -
|
|
3752
4322
|
*/
|
|
4323
|
+
/** {en}
|
|
4324
|
+
* @brief Width of the document PiP window.
|
|
4325
|
+
* @default -
|
|
4326
|
+
*/
|
|
3753
4327
|
width?: number;
|
|
3754
4328
|
/** {zh}
|
|
3755
4329
|
* @brief 网页画中画模式下窗口的高度。
|
|
3756
4330
|
* @default -
|
|
3757
4331
|
*/
|
|
4332
|
+
/** {en}
|
|
4333
|
+
* @brief Height of the document PiP window.
|
|
4334
|
+
* @default -
|
|
4335
|
+
*/
|
|
3758
4336
|
height?: number;
|
|
3759
4337
|
/** {zh}
|
|
3760
4338
|
* @brief 网页画中画模式下窗口的根节点。
|
|
3761
4339
|
* @default -
|
|
3762
4340
|
*/
|
|
4341
|
+
/** {en}
|
|
4342
|
+
* @brief Root element of the document PiP window.
|
|
4343
|
+
* @default -
|
|
4344
|
+
*/
|
|
3763
4345
|
docPiPNode?: HTMLElement;
|
|
3764
4346
|
/** {zh}
|
|
3765
4347
|
* @brief 文档画中画窗口的 css style
|
|
3766
4348
|
* @default -
|
|
3767
4349
|
*/
|
|
4350
|
+
/** {en}
|
|
4351
|
+
* @brief CSS style for the document PiP window.
|
|
4352
|
+
* @default -
|
|
4353
|
+
*/
|
|
3768
4354
|
docPiPStyle?: ((...arg: any) => string) | string;
|
|
3769
4355
|
}
|
|
3770
4356
|
/** {zh}
|
|
@@ -3785,6 +4371,10 @@ export interface IFullscreenConfig {
|
|
|
3785
4371
|
* - `false`:系统全屏。
|
|
3786
4372
|
* @default false
|
|
3787
4373
|
*/
|
|
4374
|
+
/** {en}
|
|
4375
|
+
* @brief Whether to use CSS fullscreen instead of native system fullscreen.
|
|
4376
|
+
* @default false
|
|
4377
|
+
*/
|
|
3788
4378
|
useCssFullscreen?: boolean;
|
|
3789
4379
|
/** {zh}
|
|
3790
4380
|
* @brief 是否使用旋转横屏。取值如下:
|
|
@@ -3797,22 +4387,38 @@ export interface IFullscreenConfig {
|
|
|
3797
4387
|
* @listtip - 该参数的优先级高于 `useCssFullscreen` 参数。
|
|
3798
4388
|
* - 该参数一般用于移动端。
|
|
3799
4389
|
*/
|
|
4390
|
+
/** {en}
|
|
4391
|
+
* @brief Whether to rotate the DOM 90° to achieve landscape fullscreen. Takes priority over `useCssFullscreen`. Mainly for mobile.
|
|
4392
|
+
* @default false
|
|
4393
|
+
*/
|
|
3800
4394
|
rotateFullscreen?: boolean;
|
|
3801
4395
|
/** {zh}
|
|
3802
4396
|
* @brief 旋转全屏后,锁定屏幕方向。适应于移动端设备全屏观看横屏视频
|
|
3803
4397
|
* @default false
|
|
3804
4398
|
* @notes 仅部分浏览器支持,兼容性见{@link https://caniuse.com/mdn-api_screenorientation_lock ScreenOrientation API: lock}
|
|
3805
4399
|
*/
|
|
4400
|
+
/** {en}
|
|
4401
|
+
* @brief Whether to lock the screen orientation after rotating to fullscreen. Only supported in some browsers.
|
|
4402
|
+
* @default false
|
|
4403
|
+
*/
|
|
3806
4404
|
useScreenOrientation?: boolean;
|
|
3807
4405
|
/** {zh}
|
|
3808
4406
|
* @brief 旋转全屏后,锁定屏幕方向类型,默认是横屏,可选值见{@link https://developer.mozilla.org/en-US/docs/Web/API/ScreenOrientation/lock#orientation orientation}
|
|
3809
4407
|
* @default landscape
|
|
3810
4408
|
*/
|
|
4409
|
+
/** {en}
|
|
4410
|
+
* @brief Orientation type to lock after rotating to fullscreen.
|
|
4411
|
+
* @default landscape
|
|
4412
|
+
*/
|
|
3811
4413
|
lockOrientationType?: string;
|
|
3812
4414
|
/** {zh}
|
|
3813
4415
|
* @brief 自定义全屏功能的 `dom`。默认是播放器根节点。该参数必须是 `player.root` 的父辈节点,适用于解决全屏时和 `player.root` 同级的 `dom`需要显示的场景。
|
|
3814
4416
|
* @default `null`
|
|
3815
4417
|
*/
|
|
4418
|
+
/** {en}
|
|
4419
|
+
* @brief Custom DOM element for fullscreen. Must be an ancestor of `player.root`. Defaults to the player root node.
|
|
4420
|
+
* @default null
|
|
4421
|
+
*/
|
|
3816
4422
|
target?: HTMLElement;
|
|
3817
4423
|
/** {zh}
|
|
3818
4424
|
* @brief 是否禁用全屏按钮。
|
|
@@ -3820,6 +4426,10 @@ export interface IFullscreenConfig {
|
|
|
3820
4426
|
* - `false`:不禁用。
|
|
3821
4427
|
* @default false
|
|
3822
4428
|
*/
|
|
4429
|
+
/** {en}
|
|
4430
|
+
* @brief Whether to disable the fullscreen button. When `true`, the button is not rendered.
|
|
4431
|
+
* @default false
|
|
4432
|
+
*/
|
|
3823
4433
|
disable?: boolean;
|
|
3824
4434
|
/** {zh}
|
|
3825
4435
|
* @brief 全屏的时候是否显示右上角返回按钮。取值如下:
|
|
@@ -3830,11 +4440,19 @@ export interface IFullscreenConfig {
|
|
|
3830
4440
|
* @notes 该配置一般在移动端开启
|
|
3831
4441
|
* @listtip 此参数一般用于移动端。
|
|
3832
4442
|
*/
|
|
4443
|
+
/** {en}
|
|
4444
|
+
* @brief Whether to show a back button in the top-right corner during fullscreen. Mainly for mobile.
|
|
4445
|
+
* @default false
|
|
4446
|
+
*/
|
|
3833
4447
|
needBackIcon?: boolean;
|
|
3834
4448
|
/** {zh}
|
|
3835
4449
|
* @brief 全屏切换自定义实现。该函数配置相当于完全替代插件内部的切换逻辑。
|
|
3836
4450
|
* @default `null`
|
|
3837
4451
|
*/
|
|
4452
|
+
/** {en}
|
|
4453
|
+
* @brief Custom fullscreen toggle implementation. Completely replaces the built-in toggle logic.
|
|
4454
|
+
* @default null
|
|
4455
|
+
*/
|
|
3838
4456
|
switchCallback?: (...arg: any) => any;
|
|
3839
4457
|
}
|
|
3840
4458
|
/** {zh}
|
|
@@ -3847,26 +4465,41 @@ export interface ICommonStyle {
|
|
|
3847
4465
|
* @brief 进度条底色。
|
|
3848
4466
|
* @default 无
|
|
3849
4467
|
*/
|
|
4468
|
+
/** {en}
|
|
4469
|
+
* @brief Progress bar track color.
|
|
4470
|
+
*/
|
|
3850
4471
|
progressColor?: string;
|
|
3851
4472
|
/** {zh}
|
|
3852
4473
|
* @brief 播放完成部分进度条底色。
|
|
3853
4474
|
* @default 无
|
|
3854
4475
|
*/
|
|
4476
|
+
/** {en}
|
|
4477
|
+
* @brief Color of the played portion of the progress bar.
|
|
4478
|
+
*/
|
|
3855
4479
|
playedColor?: string;
|
|
3856
4480
|
/** {zh}
|
|
3857
4481
|
* @brief 缓存部分进度条底色。
|
|
3858
4482
|
* @default 无
|
|
3859
4483
|
*/
|
|
4484
|
+
/** {en}
|
|
4485
|
+
* @brief Color of the buffered portion of the progress bar.
|
|
4486
|
+
*/
|
|
3860
4487
|
cachedColor?: string;
|
|
3861
4488
|
/** {zh}
|
|
3862
4489
|
* @brief 进度条滑块样式。
|
|
3863
4490
|
* @default 无
|
|
3864
4491
|
*/
|
|
4492
|
+
/** {en}
|
|
4493
|
+
* @brief Style of the progress bar thumb/slider.
|
|
4494
|
+
*/
|
|
3865
4495
|
sliderBtnStyle?: CSSStyleDeclaration;
|
|
3866
4496
|
/** {zh}
|
|
3867
4497
|
* @brief 音量颜色。
|
|
3868
4498
|
* @default 无
|
|
3869
4499
|
*/
|
|
4500
|
+
/** {en}
|
|
4501
|
+
* @brief Volume control color.
|
|
4502
|
+
*/
|
|
3870
4503
|
volumeColor?: string;
|
|
3871
4504
|
}
|
|
3872
4505
|
/** {zh}
|
|
@@ -3879,11 +4512,19 @@ export interface IPoster {
|
|
|
3879
4512
|
* @brief 封面图 URL 地址。
|
|
3880
4513
|
* @default -
|
|
3881
4514
|
*/
|
|
4515
|
+
/** {en}
|
|
4516
|
+
* @brief Poster image URL.
|
|
4517
|
+
* @default -
|
|
4518
|
+
*/
|
|
3882
4519
|
poster: string;
|
|
3883
4520
|
/** {zh}
|
|
3884
4521
|
* @brief 是否在播放结束之后显示封面图。
|
|
3885
4522
|
* @default true
|
|
3886
4523
|
*/
|
|
4524
|
+
/** {en}
|
|
4525
|
+
* @brief Whether to show the poster after playback ends.
|
|
4526
|
+
* @default true
|
|
4527
|
+
*/
|
|
3887
4528
|
isEndedShow?: boolean;
|
|
3888
4529
|
/** {zh}
|
|
3889
4530
|
* @brief 是否播放后隐藏封面图。
|
|
@@ -3891,11 +4532,19 @@ export interface IPoster {
|
|
|
3891
4532
|
* - `false`:在 `play` 事件触发后隐藏封面图。
|
|
3892
4533
|
* @default false
|
|
3893
4534
|
*/
|
|
4535
|
+
/** {en}
|
|
4536
|
+
* @brief Whether to hide the poster after playback starts. When `true`, the poster re-appears after a URL update.
|
|
4537
|
+
* @default false
|
|
4538
|
+
*/
|
|
3894
4539
|
hideCanplay?: boolean;
|
|
3895
4540
|
/** {zh}
|
|
3896
4541
|
* @brief 是否一直显示封面图。
|
|
3897
4542
|
* @default false
|
|
3898
4543
|
*/
|
|
4544
|
+
/** {en}
|
|
4545
|
+
* @brief Whether to keep the poster always visible.
|
|
4546
|
+
* @default false
|
|
4547
|
+
*/
|
|
3899
4548
|
notHidden?: boolean;
|
|
3900
4549
|
/** {zh}
|
|
3901
4550
|
* @brief 封面图填充方式。取值如下:
|
|
@@ -3904,6 +4553,9 @@ export interface IPoster {
|
|
|
3904
4553
|
* - `cover`:完全覆盖容器,多余部分会被裁剪。
|
|
3905
4554
|
* - `contain`:完全覆盖,与容器不匹配时会被拉伸压缩。
|
|
3906
4555
|
*/
|
|
4556
|
+
/** {en}
|
|
4557
|
+
* @brief Poster fill mode: `fixWidth`, `fixHeight`, `cover` (crop to fill), or `contain` (stretch to fill).
|
|
4558
|
+
*/
|
|
3907
4559
|
fillMode?: "fixWidth" | "fixHeight" | "cover" | "contain";
|
|
3908
4560
|
}
|
|
3909
4561
|
/** {zh}
|
|
@@ -3916,48 +4568,82 @@ export interface IThumbnailConfig {
|
|
|
3916
4568
|
* @brief 雪碧图地址数组。
|
|
3917
4569
|
* @default -
|
|
3918
4570
|
*/
|
|
4571
|
+
/** {en}
|
|
4572
|
+
* @brief Array of sprite sheet URLs.
|
|
4573
|
+
* @default -
|
|
4574
|
+
*/
|
|
3919
4575
|
urls: Array<string>;
|
|
3920
4576
|
/** {zh}
|
|
3921
4577
|
* @brief 缩略小图总张数。
|
|
3922
4578
|
* @default -
|
|
3923
4579
|
*/
|
|
4580
|
+
/** {en}
|
|
4581
|
+
* @brief Total number of thumbnail frames.
|
|
4582
|
+
* @default -
|
|
4583
|
+
*/
|
|
3924
4584
|
pic_num: number;
|
|
3925
4585
|
/** {zh}
|
|
3926
4586
|
* @brief 雪碧大图中每列包含的缩略小图数量。
|
|
3927
4587
|
* @default -
|
|
3928
4588
|
*/
|
|
4589
|
+
/** {en}
|
|
4590
|
+
* @brief Number of thumbnail columns per sprite sheet.
|
|
4591
|
+
* @default -
|
|
4592
|
+
*/
|
|
3929
4593
|
col: number;
|
|
3930
4594
|
/** {zh}
|
|
3931
4595
|
* @brief 雪碧大图中每行包含的缩略小图数量。
|
|
3932
4596
|
* @default -
|
|
3933
4597
|
*/
|
|
4598
|
+
/** {en}
|
|
4599
|
+
* @brief Number of thumbnail rows per sprite sheet.
|
|
4600
|
+
* @default -
|
|
4601
|
+
*/
|
|
3934
4602
|
row: number;
|
|
3935
4603
|
/** {zh}
|
|
3936
4604
|
* @brief 缩略小图高度,单位为 px。
|
|
3937
4605
|
* @default -
|
|
3938
4606
|
*/
|
|
4607
|
+
/** {en}
|
|
4608
|
+
* @brief Thumbnail frame height in px.
|
|
4609
|
+
* @default -
|
|
4610
|
+
*/
|
|
3939
4611
|
height?: number;
|
|
3940
4612
|
/** {zh}
|
|
3941
4613
|
* @brief 缩略小图宽度,单位为 px。
|
|
3942
4614
|
* @default -
|
|
3943
4615
|
*/
|
|
4616
|
+
/** {en}
|
|
4617
|
+
* @brief Thumbnail frame width in px.
|
|
4618
|
+
* @default -
|
|
4619
|
+
*/
|
|
3944
4620
|
width?: number;
|
|
3945
4621
|
/** {zh}
|
|
3946
4622
|
* @brief 显示缩放比例
|
|
3947
4623
|
* @default 1
|
|
3948
4624
|
* @hidden
|
|
3949
4625
|
*/
|
|
4626
|
+
/** {en}
|
|
4627
|
+
* @hidden
|
|
4628
|
+
*/
|
|
3950
4629
|
scale?: 1;
|
|
3951
4630
|
/** {zh}
|
|
3952
4631
|
* @brief 额外添加在dom上的class
|
|
3953
4632
|
* @default -
|
|
3954
4633
|
* @hidden
|
|
3955
4634
|
*/
|
|
4635
|
+
/** {en}
|
|
4636
|
+
* @hidden
|
|
4637
|
+
*/
|
|
3956
4638
|
className?: string;
|
|
3957
4639
|
/** {zh}
|
|
3958
4640
|
* @brief 是否在竖屏的时候隐藏缩略图。
|
|
3959
4641
|
* @default false
|
|
3960
4642
|
*/
|
|
4643
|
+
/** {en}
|
|
4644
|
+
* @brief Whether to hide the thumbnail in portrait orientation.
|
|
4645
|
+
* @default false
|
|
4646
|
+
*/
|
|
3961
4647
|
hidePortrait?: false;
|
|
3962
4648
|
}
|
|
3963
4649
|
export interface ISourceConfig {
|
|
@@ -3973,764 +4659,809 @@ export interface ApiMapConfig {
|
|
|
3973
4659
|
playDomain: string;
|
|
3974
4660
|
backupPlayDomain?: string;
|
|
3975
4661
|
}
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
4662
|
+
declare enum UmdKeys {
|
|
4663
|
+
HLS = "hls",
|
|
4664
|
+
HLSJS = "hlsjs",
|
|
4665
|
+
FLV = "flv",
|
|
4666
|
+
XGVideo = "XGVideo",
|
|
4667
|
+
HLSEncrypt = "hlsEncrypt",
|
|
4668
|
+
DASH = "dash",
|
|
4669
|
+
MP4Encrypt = "mp4Encrypt",
|
|
4670
|
+
DanmuJS = "danmujs",
|
|
4671
|
+
DanmuMask = "danmuMask",
|
|
4672
|
+
StreamProbe = "streamprobe",
|
|
4673
|
+
VeStrategy = "vestrategy",
|
|
4674
|
+
VeStrategyH265 = "vestrategy_h265",
|
|
4675
|
+
VeStrategyPreload = "vestrategy_preload",
|
|
4676
|
+
VeStrategyAdaptRange = "vestrategy_adapt_range",
|
|
4677
|
+
DashAbralgo = "DashAbralgo",
|
|
4678
|
+
Preloader = "preloader",
|
|
4679
|
+
HLSjsPro = "hlsjsPro"
|
|
3990
4680
|
}
|
|
3991
|
-
|
|
4681
|
+
/**
|
|
4682
|
+
* @hidden
|
|
4683
|
+
* @breif umdmap 配置
|
|
4684
|
+
*/
|
|
4685
|
+
export declare type UMDMap = Record<UmdKeys, {
|
|
3992
4686
|
/**
|
|
3993
|
-
*
|
|
3994
|
-
* @brief H.265 策略
|
|
4687
|
+
* umd Module 的名称,即在window下暴露的接口名称
|
|
3995
4688
|
*/
|
|
3996
|
-
|
|
4689
|
+
name: string;
|
|
3997
4690
|
/**
|
|
3998
|
-
*
|
|
3999
|
-
* @brief 预加载策略
|
|
4691
|
+
* 对应umd文件名,只用来标记,实际不使用
|
|
4000
4692
|
*/
|
|
4001
|
-
|
|
4693
|
+
pluginName?: string;
|
|
4002
4694
|
/**
|
|
4003
|
-
*
|
|
4004
|
-
* @brief 动态 Buffer
|
|
4695
|
+
* 对应npm包的名称,在打包文件时,会在libd.config.js中onPostBuild的钩子中会用于寻找对应npm包
|
|
4005
4696
|
*/
|
|
4006
|
-
|
|
4007
|
-
}
|
|
4008
|
-
/** {zh}
|
|
4009
|
-
* @hidden
|
|
4010
|
-
* h265策略配置
|
|
4011
|
-
* @detail Options
|
|
4012
|
-
*/
|
|
4013
|
-
export declare type IH265Config = {
|
|
4697
|
+
packageName: string;
|
|
4014
4698
|
/**
|
|
4015
|
-
*
|
|
4699
|
+
* npm包中umd入口文件路径,用于打包上传到cdn目录
|
|
4016
4700
|
*/
|
|
4017
|
-
|
|
4701
|
+
devPath: string;
|
|
4702
|
+
}>;
|
|
4703
|
+
declare class UMDLoader {
|
|
4704
|
+
private static jsLoadMap;
|
|
4705
|
+
private static jsLoadPromiseMap;
|
|
4706
|
+
umdMap: UMDMap;
|
|
4707
|
+
backupUmdUrlMap: Record<string, string>;
|
|
4708
|
+
failCallback: (umdName: string, err: any) => any;
|
|
4709
|
+
region: TRegionType;
|
|
4710
|
+
userRegion: TRegionType;
|
|
4711
|
+
customPluginPublicPath: string;
|
|
4712
|
+
importedPlugins: any[];
|
|
4713
|
+
constructor();
|
|
4018
4714
|
/**
|
|
4019
|
-
*
|
|
4715
|
+
* @return { string } 插件加载的公共路径
|
|
4020
4716
|
*/
|
|
4021
|
-
|
|
4022
|
-
} & VeStrategyH265Config;
|
|
4023
|
-
/** {zh}
|
|
4024
|
-
* 预加载初始配置
|
|
4025
|
-
* @detail Options
|
|
4026
|
-
*/
|
|
4027
|
-
export declare type IPreloadConfig = {
|
|
4717
|
+
get pluginPublicPath(): string;
|
|
4028
4718
|
/**
|
|
4029
|
-
*
|
|
4030
|
-
* @
|
|
4031
|
-
|
|
4032
|
-
|
|
4719
|
+
* 更新umd的备用地址
|
|
4720
|
+
* @param {Record<string, string>} map 备用地址map
|
|
4721
|
+
*/
|
|
4722
|
+
updateBackupMap(map: Record<string, string>): void;
|
|
4033
4723
|
/**
|
|
4034
|
-
*
|
|
4035
|
-
*
|
|
4036
|
-
*
|
|
4724
|
+
* 加载额外的js-sdk
|
|
4725
|
+
* 适用 umd 模块
|
|
4726
|
+
* 只能浏览器环境下使用
|
|
4727
|
+
* @param url 额外加载JS 的 CDN 地址
|
|
4728
|
+
* @param isJs 是否js文件
|
|
4037
4729
|
*/
|
|
4038
|
-
|
|
4039
|
-
|
|
4730
|
+
loadExtraCdn(url: string, isJs?: boolean): Promise<void>;
|
|
4731
|
+
/**
|
|
4732
|
+
* @description 加载xgplayer插件
|
|
4733
|
+
* @param pluginName 插件名称
|
|
4734
|
+
* @param successCallback 加载完成后执行的回调
|
|
4735
|
+
* @return Promise<any>
|
|
4040
4736
|
*/
|
|
4041
|
-
|
|
4737
|
+
loadPlugins(pluginName: UmdKeys, successCallback?: () => void): Promise<any>;
|
|
4042
4738
|
/**
|
|
4043
|
-
*
|
|
4044
|
-
* @default 2
|
|
4045
|
-
* @brief 向后预加载视频个数。Feed 流场景生效
|
|
4739
|
+
* 处理加载成功
|
|
4046
4740
|
*/
|
|
4047
|
-
|
|
4048
|
-
|
|
4741
|
+
private handleLoadSuccess;
|
|
4742
|
+
/**
|
|
4743
|
+
* 处理加载失败
|
|
4049
4744
|
*/
|
|
4050
|
-
|
|
4745
|
+
private handleLoadError;
|
|
4051
4746
|
/**
|
|
4052
|
-
*
|
|
4053
|
-
* @default 5
|
|
4747
|
+
* 处理catch分支的错误处理
|
|
4054
4748
|
*/
|
|
4055
|
-
|
|
4749
|
+
private handleLoadCatch;
|
|
4056
4750
|
/**
|
|
4057
|
-
*
|
|
4058
|
-
* @default 15
|
|
4751
|
+
* 加载备用URL
|
|
4059
4752
|
*/
|
|
4060
|
-
|
|
4753
|
+
private loadBackupUrl;
|
|
4061
4754
|
/**
|
|
4062
|
-
*
|
|
4063
|
-
* @brief 预加载依赖 Module
|
|
4755
|
+
* 触发成功回调
|
|
4064
4756
|
*/
|
|
4065
|
-
|
|
4066
|
-
|
|
4757
|
+
private triggerSuccessCallback;
|
|
4758
|
+
}
|
|
4759
|
+
export declare class SdkPlugin {
|
|
4760
|
+
pluginName: string;
|
|
4761
|
+
__args: any;
|
|
4762
|
+
sdk: VePlayer;
|
|
4763
|
+
playerData: PlayerData;
|
|
4764
|
+
player: Player;
|
|
4765
|
+
_emitter: EventEmitter;
|
|
4766
|
+
static defineGetterOrSetter(Obj: any, map: any): void;
|
|
4767
|
+
/**
|
|
4768
|
+
* @type { string }
|
|
4067
4769
|
*/
|
|
4068
|
-
|
|
4770
|
+
static get pluginName(): string;
|
|
4069
4771
|
/**
|
|
4070
|
-
*
|
|
4772
|
+
* @constructor
|
|
4773
|
+
* @param { { sdk: object, pluginName: string, [propName: string]: any;} } args
|
|
4071
4774
|
*/
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
* @hidden
|
|
4076
|
-
* @detail Options
|
|
4077
|
-
* @brief Range 拆分(动态Buffer)策略初始配置
|
|
4078
|
-
* @notes adaptRange策略配置结构较复杂,暂不开放Range默认配置自定义,使用策略下发
|
|
4079
|
-
*/
|
|
4080
|
-
export declare type IAdaptRangeConfig = {
|
|
4081
|
-
/** {zh}
|
|
4082
|
-
* @brief 预加载依赖Module
|
|
4775
|
+
constructor(args: any);
|
|
4776
|
+
/**
|
|
4777
|
+
* @description sdk实例创建,挂载插件实例时首先执行
|
|
4083
4778
|
*/
|
|
4084
|
-
|
|
4085
|
-
/**
|
|
4086
|
-
* @
|
|
4779
|
+
beforeCreate(): void;
|
|
4780
|
+
/**
|
|
4781
|
+
* @description sdk实例创建,挂载插件实例完后执行
|
|
4087
4782
|
*/
|
|
4088
|
-
|
|
4089
|
-
};
|
|
4090
|
-
/** {zh}
|
|
4091
|
-
* @detail Options
|
|
4092
|
-
* @brief 策略配置。
|
|
4093
|
-
*/
|
|
4094
|
-
export declare type StrategyConfigOptions = {
|
|
4783
|
+
afterCreate(): void;
|
|
4095
4784
|
/**
|
|
4096
|
-
*
|
|
4097
|
-
* @hidden
|
|
4098
|
-
* @brief H.265 策略配置。
|
|
4785
|
+
* @description sdk创建播放器前执行,只有这里能保证异步操作在creatPlayer之前同步完成
|
|
4099
4786
|
*/
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
* @
|
|
4787
|
+
beforePlayerCreate(): void;
|
|
4788
|
+
/**
|
|
4789
|
+
* @description sdk创建播放器完执行
|
|
4103
4790
|
*/
|
|
4104
|
-
|
|
4791
|
+
afterPlayerCreate(): void;
|
|
4105
4792
|
/**
|
|
4106
|
-
*
|
|
4107
|
-
* @brief 预加载配置。
|
|
4793
|
+
* @description sdk销毁时执行
|
|
4108
4794
|
*/
|
|
4109
|
-
|
|
4110
|
-
|
|
4795
|
+
destroy(): void;
|
|
4796
|
+
/**
|
|
4797
|
+
* @private
|
|
4798
|
+
* @param { any } args
|
|
4111
4799
|
*/
|
|
4112
|
-
|
|
4800
|
+
__init(args: any): void;
|
|
4113
4801
|
/**
|
|
4114
|
-
*
|
|
4115
|
-
* @
|
|
4802
|
+
* @description 插件销毁
|
|
4803
|
+
* @private
|
|
4116
4804
|
*/
|
|
4117
|
-
|
|
4118
|
-
|
|
4805
|
+
__destroy(): void;
|
|
4806
|
+
}
|
|
4807
|
+
declare class AuthToken extends SdkPlugin {
|
|
4808
|
+
static get pluginName(): string;
|
|
4809
|
+
isPlayByToken: boolean;
|
|
4810
|
+
isEncrypt: boolean;
|
|
4811
|
+
tokenInfo: ITokenInfo;
|
|
4812
|
+
keyTokenInfo: ITokenInfo;
|
|
4813
|
+
thirdPartyDrmAuthTokenInfo: ITokenInfo;
|
|
4814
|
+
config: IPlayAuthTokenConfig;
|
|
4815
|
+
privateDrmAuthToken: string;
|
|
4816
|
+
useUnionInfoDRM: boolean;
|
|
4817
|
+
sessionId: string;
|
|
4818
|
+
retryCount: number;
|
|
4819
|
+
playInfo?: VideoInfoRes;
|
|
4820
|
+
constructor(args: any);
|
|
4821
|
+
beforePlayerCreate(): Promise<void>;
|
|
4822
|
+
getVideoInfo(): Promise<{
|
|
4823
|
+
vid: string;
|
|
4824
|
+
playList: Stream[];
|
|
4825
|
+
codec: ICodecType;
|
|
4826
|
+
defaultDefinition: string;
|
|
4827
|
+
}>;
|
|
4828
|
+
getVideos(): Promise<any>;
|
|
4829
|
+
getPrivateDrmInfo(playList: Stream[], vid: string, streamType: string): Promise<void>;
|
|
4830
|
+
getThumbnailConfig(thumbs: IThumbInfoItem[]): void;
|
|
4831
|
+
getBarrageMaskUrl(url: string): void;
|
|
4832
|
+
getDrmConfig(videoInfo: IVideoInfo): void;
|
|
4833
|
+
init(): void;
|
|
4834
|
+
initConfig(getVideoByToken: IPlayAuthTokenConfig): void;
|
|
4835
|
+
/**
|
|
4836
|
+
* @description 更新playAuthToken
|
|
4837
|
+
* @param {IPlayAuthTokenConfig} getVideoByToken token信息
|
|
4838
|
+
* @param {boolean} isNewVideo 是否新视频,即是否为切换视频
|
|
4119
4839
|
*/
|
|
4120
|
-
|
|
4121
|
-
|
|
4840
|
+
updateAuthToken(getVideoByToken: IPlayAuthTokenConfig, isNewVideo: boolean): Promise<void>;
|
|
4841
|
+
checkPlayAuthTokenValid(): boolean;
|
|
4842
|
+
checkKeyTokenValid(): boolean;
|
|
4843
|
+
checkDrmAuthTokenValid(): boolean;
|
|
4844
|
+
}
|
|
4122
4845
|
/** {zh}
|
|
4123
|
-
*
|
|
4124
|
-
* @detail Options
|
|
4846
|
+
* @hidden
|
|
4125
4847
|
*/
|
|
4126
|
-
export
|
|
4127
|
-
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
* @brief Advanced Capability (Strategy) Configuration
|
|
4151
|
-
*/
|
|
4152
|
-
strategies: StrategyConfigOptions;
|
|
4153
|
-
/** {zh}
|
|
4154
|
-
* 设备ID
|
|
4155
|
-
* @brief 设备 ID
|
|
4156
|
-
*/
|
|
4157
|
-
/** {en}
|
|
4158
|
-
* @brief device id
|
|
4159
|
-
*/
|
|
4160
|
-
deviceId?: string;
|
|
4161
|
-
/** {zh}
|
|
4162
|
-
* @brief 手动注入依赖插件,默认自动加载
|
|
4163
|
-
* @default -
|
|
4164
|
-
*/
|
|
4165
|
-
/** {en}
|
|
4166
|
-
* @brief Manually inject dependency plugins, automatically load by default
|
|
4167
|
-
* @default -
|
|
4168
|
-
*/
|
|
4169
|
-
plugins?: any[];
|
|
4848
|
+
export interface IAdaptRangeDefaultOptions {
|
|
4849
|
+
maxTargetCacheDur: number;
|
|
4850
|
+
minTargetCacheDur: number;
|
|
4851
|
+
rangeMaxDuration: number;
|
|
4852
|
+
rangeMinDuration: number;
|
|
4853
|
+
cacheSafeFactor: number;
|
|
4854
|
+
estPTcontrol: boolean;
|
|
4855
|
+
estPlayTime: number;
|
|
4856
|
+
minBandwidth: number;
|
|
4857
|
+
minDangerThreshold: number;
|
|
4858
|
+
rangeControl: boolean;
|
|
4859
|
+
rangeMinSize: number;
|
|
4860
|
+
safeFactor: number;
|
|
4861
|
+
targetCacheControl: boolean;
|
|
4862
|
+
}
|
|
4863
|
+
declare abstract class AbstractBaseAdapter {
|
|
4864
|
+
isLive: boolean;
|
|
4865
|
+
playerData: PlayerData;
|
|
4866
|
+
streamType: string;
|
|
4867
|
+
constructor(options: {
|
|
4868
|
+
configs: IPlayerConfig;
|
|
4869
|
+
playerData: PlayerData;
|
|
4870
|
+
streamType: string;
|
|
4871
|
+
});
|
|
4170
4872
|
/**
|
|
4171
|
-
*
|
|
4172
|
-
* @brief 策略 Module,默认自动加载
|
|
4173
|
-
* @default -
|
|
4174
|
-
*/
|
|
4175
|
-
/** {en}
|
|
4176
|
-
* @brief Strategy Module, automatically loaded by default
|
|
4177
|
-
* @default -
|
|
4873
|
+
* @description 是否使用原生video的abr能力
|
|
4178
4874
|
*/
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4875
|
+
abstract useNativeAbr(): boolean;
|
|
4876
|
+
abstract canOpenAbr(vidPlayInfo?: VideoInfoRes): boolean;
|
|
4877
|
+
abstract applyAbrPluginConfig(_finalOptions: any, _autoBitrateOpts: any): void;
|
|
4878
|
+
abstract prepareAbrModule(_playerData: any, _sdkUmdLoader: any): void;
|
|
4879
|
+
abstract needAbrAutoDefinition(): boolean;
|
|
4880
|
+
abstract setAbrDefaultDefiWithAuto(): boolean;
|
|
4881
|
+
abstract generatePlaylistFromServer(res: VideoInfoRes, ...args: any[]): Stream[];
|
|
4882
|
+
abstract canAdaptRangeEnable(): boolean;
|
|
4883
|
+
abstract adaptRangeDefaultOptions(): IAdaptRangeDefaultOptions | undefined;
|
|
4884
|
+
abstract applyAdaptRangePluginConfig(_finalOptions: any, _adaptRangeOptions: any): void;
|
|
4885
|
+
abstract applyAdaptRangeStrategy(_finalOptions: any, _adaptRangeOptions: any): void;
|
|
4886
|
+
abstract getPlugins(umdLoader: UMDLoader): Promise<XGPlugin[]>;
|
|
4887
|
+
abstract setPluginConfigInVid(videoInfo: IVideoInfo, context: AuthToken): void;
|
|
4888
|
+
}
|
|
4889
|
+
declare class PlayerData {
|
|
4890
|
+
id?: string;
|
|
4891
|
+
root?: HTMLElement;
|
|
4892
|
+
configs: IPlayerConfig;
|
|
4893
|
+
type: string;
|
|
4894
|
+
isLive: boolean;
|
|
4895
|
+
options: any;
|
|
4896
|
+
isMobile: boolean;
|
|
4897
|
+
playList: Stream[];
|
|
4898
|
+
plugins: any[];
|
|
4899
|
+
openSoftDecoding: boolean;
|
|
4900
|
+
defaultConfig: IDefaultConfig | undefined;
|
|
4901
|
+
isHitDefault: boolean;
|
|
4902
|
+
codec?: ICodecType;
|
|
4903
|
+
enableH265Degrade: boolean;
|
|
4904
|
+
languageData: {
|
|
4905
|
+
extraLangList: IXGI18nText[];
|
|
4906
|
+
extendLangList: IXGI18nText[];
|
|
4907
|
+
};
|
|
4908
|
+
current: Current;
|
|
4909
|
+
onMediaExpired: () => Promise<SourceConfig>;
|
|
4910
|
+
onTokenExpired: () => Promise<IPlayAuthTokenConfig>;
|
|
4911
|
+
unionId?: string;
|
|
4912
|
+
unionInfo?: string;
|
|
4913
|
+
isMusic?: boolean;
|
|
4914
|
+
sdkPlugins: any[];
|
|
4915
|
+
useHlsPluginForSafari: boolean;
|
|
4916
|
+
enableHlsJs: boolean;
|
|
4917
|
+
enableMenu: boolean;
|
|
4918
|
+
region: TRegionType;
|
|
4919
|
+
userRegion: TRegionType;
|
|
4920
|
+
playDomainDegrade: boolean;
|
|
4921
|
+
strategiesPlugins: any[];
|
|
4922
|
+
strategiesPluginConfigs: any;
|
|
4187
4923
|
/**
|
|
4188
|
-
*
|
|
4924
|
+
* @default playList第一项
|
|
4189
4925
|
*/
|
|
4190
|
-
|
|
4926
|
+
defaultDefinition: string;
|
|
4927
|
+
urlCheckData: {
|
|
4928
|
+
enableUrlExpireCheck: boolean;
|
|
4929
|
+
urlExpireTimestamp: number;
|
|
4930
|
+
urlExpireDiff: number;
|
|
4931
|
+
urlCheckExpireInterval: number;
|
|
4932
|
+
};
|
|
4933
|
+
private isAutoBitrateEnable;
|
|
4934
|
+
adapter: AbstractBaseAdapter;
|
|
4191
4935
|
/**
|
|
4192
|
-
*
|
|
4936
|
+
* @breif 是否vid模式的加密播放
|
|
4193
4937
|
*/
|
|
4194
|
-
|
|
4938
|
+
isVidEncrypt: boolean;
|
|
4939
|
+
dashOpts: {
|
|
4940
|
+
Data: IGetPlayInfoRes;
|
|
4941
|
+
};
|
|
4195
4942
|
/**
|
|
4196
|
-
*
|
|
4943
|
+
* @brief 播放器sdk实例
|
|
4197
4944
|
*/
|
|
4198
|
-
|
|
4199
|
-
};
|
|
4200
|
-
declare enum PreloaderStatus {
|
|
4945
|
+
sdk: VePlayer;
|
|
4201
4946
|
/**
|
|
4202
|
-
*
|
|
4947
|
+
* @brief 当前加密播放类型,为空则表示非加密
|
|
4203
4948
|
*/
|
|
4204
|
-
|
|
4949
|
+
drmType: EDRMTYPE;
|
|
4205
4950
|
/**
|
|
4206
|
-
*
|
|
4951
|
+
* @brief 私有加密会话id
|
|
4207
4952
|
*/
|
|
4208
|
-
|
|
4953
|
+
encryptSessionId?: string;
|
|
4954
|
+
constructor(configs: IPlayerConfig & {
|
|
4955
|
+
licensSupportModuleList: string[];
|
|
4956
|
+
}, sdk: VePlayer);
|
|
4209
4957
|
/**
|
|
4210
|
-
*
|
|
4958
|
+
* 初始化播放数据
|
|
4959
|
+
* @param configs { IPlayerConfig } 播放器配置
|
|
4211
4960
|
*/
|
|
4212
|
-
|
|
4961
|
+
initPlayData(configs: IPlayerConfig): void;
|
|
4962
|
+
initPlaylistAndGetCurrent(configs: IPlayerConfig): Stream;
|
|
4963
|
+
checkAutoBitratePlayList(): boolean;
|
|
4964
|
+
getABRStreamInfo(streamType: any, originDefaultStream: any): {
|
|
4965
|
+
defaultDefinition: string;
|
|
4966
|
+
defaultStream: any;
|
|
4967
|
+
playList: Stream[];
|
|
4968
|
+
};
|
|
4969
|
+
isCurrentH265(): boolean;
|
|
4970
|
+
setDrmType(drmType: EDRMTYPE): void;
|
|
4971
|
+
getCurrentByDefaultConfig(): Stream;
|
|
4972
|
+
initCurrent(currentStreams: Stream): void;
|
|
4973
|
+
initCheckExpireData(): void;
|
|
4213
4974
|
/**
|
|
4214
|
-
*
|
|
4975
|
+
* 更新过期检测的数据
|
|
4215
4976
|
*/
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
* @hidden
|
|
4222
|
-
*/
|
|
4223
|
-
export declare type IPreloadUpdateConfig = {
|
|
4977
|
+
updateCheckExpireData(): void;
|
|
4978
|
+
initI18nData(languages: any): {
|
|
4979
|
+
extraLangList: any[];
|
|
4980
|
+
extendLangList: any[];
|
|
4981
|
+
};
|
|
4224
4982
|
/**
|
|
4225
|
-
*
|
|
4983
|
+
* @description: 获取当前直播url
|
|
4226
4984
|
*/
|
|
4227
|
-
|
|
4985
|
+
getCurrentUrl(): Url;
|
|
4986
|
+
getTargetStreamType(stream?: Stream): string;
|
|
4228
4987
|
/**
|
|
4229
|
-
*
|
|
4988
|
+
* @description: 获取当前的streamType
|
|
4230
4989
|
*/
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4990
|
+
getCurrentStreamType(): string;
|
|
4991
|
+
getStreamType(): string;
|
|
4992
|
+
isOpenABR(): boolean;
|
|
4993
|
+
showRealDefinition(): boolean;
|
|
4994
|
+
isAutoDefinition(def: any): boolean;
|
|
4995
|
+
isPlayAutoDefinition(def?: string): boolean;
|
|
4996
|
+
isDefinitionMatch(pre: any, next: any): boolean;
|
|
4238
4997
|
/**
|
|
4239
|
-
*
|
|
4240
|
-
* @brief 视频 ID
|
|
4241
|
-
*/
|
|
4242
|
-
/** {en}
|
|
4243
|
-
* @brief 视频唯一ID
|
|
4998
|
+
* @description: 获取满足当前直播条件的流
|
|
4244
4999
|
*/
|
|
4245
|
-
|
|
5000
|
+
getCurrentStreams(): Stream[];
|
|
4246
5001
|
/**
|
|
4247
|
-
*
|
|
4248
|
-
* @brief 视频播放地址
|
|
4249
|
-
*/
|
|
4250
|
-
/** {en}
|
|
4251
|
-
* @brief 播放地址
|
|
5002
|
+
* @description: 获取根据线路ID去重的流,用于获取有几个线路
|
|
4252
5003
|
*/
|
|
4253
|
-
|
|
5004
|
+
getLineList(): Stream[];
|
|
4254
5005
|
/**
|
|
4255
|
-
*
|
|
5006
|
+
* @description: 根据线路ID获取符合条件的流
|
|
5007
|
+
* @param {number} lineId
|
|
4256
5008
|
*/
|
|
4257
|
-
|
|
5009
|
+
getLineListByLineId(lineId: number | string): Stream[];
|
|
4258
5010
|
/**
|
|
4259
|
-
*
|
|
4260
|
-
* @
|
|
5011
|
+
* @description: 根据线路ID获取清晰度list,用于获取某个线路下有几个清晰度
|
|
5012
|
+
* @param {number} lineId
|
|
4261
5013
|
*/
|
|
4262
|
-
|
|
4263
|
-
|
|
5014
|
+
getDefinitionListByLineId(lineId: number | string): Stream[];
|
|
5015
|
+
/**
|
|
5016
|
+
* @description: 根据条件筛选符合条件的流list
|
|
5017
|
+
* @param {Condition} condition
|
|
4264
5018
|
*/
|
|
4265
|
-
|
|
5019
|
+
getUrlList(condition: Condition): Stream[];
|
|
4266
5020
|
/**
|
|
4267
|
-
*
|
|
4268
|
-
* @
|
|
5021
|
+
* @description: 获取当期清晰的上一级清晰度或下一级清晰度
|
|
5022
|
+
* @param {boolean} isDown 是否取下一级清晰度
|
|
5023
|
+
* @param {string[]} demotePriority 清晰度降级顺序
|
|
4269
5024
|
*/
|
|
4270
|
-
|
|
4271
|
-
|
|
5025
|
+
getNextDefinition(isDown: boolean, demotePriority: string[]): Stream[];
|
|
5026
|
+
/**
|
|
5027
|
+
* 获取api map
|
|
5028
|
+
* @return { ApiMapConfig }
|
|
4272
5029
|
*/
|
|
4273
|
-
|
|
5030
|
+
get apiMap(): ApiMapConfig;
|
|
4274
5031
|
/**
|
|
4275
|
-
*
|
|
4276
|
-
* @brief 码率, 数据统计需要,选填
|
|
5032
|
+
* 获取播放域名
|
|
4277
5033
|
*/
|
|
4278
|
-
|
|
4279
|
-
|
|
5034
|
+
get playDomain(): string;
|
|
5035
|
+
setVodTeaId(): void;
|
|
5036
|
+
/**
|
|
5037
|
+
* 更新configs,即更新用户的configs,常用于playNext时
|
|
5038
|
+
* @param newConfigs {IPlayerConfig} 要更新的配置
|
|
4280
5039
|
*/
|
|
4281
|
-
|
|
5040
|
+
updateConfigs(newConfigs: IPlayerConfig): void;
|
|
4282
5041
|
/**
|
|
4283
|
-
*
|
|
4284
|
-
* @brief 视频时长,数据统计需要,选填
|
|
5042
|
+
* 更新playList
|
|
4285
5043
|
*/
|
|
4286
|
-
|
|
4287
|
-
|
|
5044
|
+
updatePlayList(): void;
|
|
5045
|
+
isVidPlay(): boolean;
|
|
5046
|
+
}
|
|
5047
|
+
/**
|
|
5048
|
+
* @hidden
|
|
5049
|
+
* @brief 移动端交互面板配置
|
|
5050
|
+
*/
|
|
5051
|
+
export interface IConfig {
|
|
5052
|
+
mode?: number;
|
|
5053
|
+
isAutoChange?: boolean;
|
|
5054
|
+
}
|
|
5055
|
+
declare class MobilePlayerPanel {
|
|
5056
|
+
config: IConfig;
|
|
5057
|
+
parent: HTMLElement;
|
|
5058
|
+
root: any;
|
|
5059
|
+
mode: number;
|
|
5060
|
+
isAutoChange: number;
|
|
5061
|
+
player: any;
|
|
5062
|
+
children: HTMLElement | undefined;
|
|
5063
|
+
container: HTMLElement | undefined;
|
|
5064
|
+
title: HTMLElement | undefined;
|
|
5065
|
+
isShow: boolean;
|
|
5066
|
+
showCancelBtn: boolean;
|
|
5067
|
+
constructor(args: any);
|
|
5068
|
+
initEvents(): void;
|
|
5069
|
+
handleOrientationChange(): void;
|
|
5070
|
+
changeConfig(config: IConfig): void;
|
|
5071
|
+
changeMode(mode: number): void;
|
|
5072
|
+
renderPanel(): void;
|
|
5073
|
+
showPanel(children: HTMLElement, title?: string, isItemList?: boolean): Promise<void>;
|
|
5074
|
+
updatePanel(children: HTMLElement): void;
|
|
5075
|
+
setTitle(title: any): void;
|
|
5076
|
+
renderTitle(title: any): HTMLElement;
|
|
5077
|
+
show(): void;
|
|
5078
|
+
hide(): void;
|
|
5079
|
+
handleHide(e: any): void;
|
|
5080
|
+
bind(event: string, eventHandle: any, isBubble?: boolean): void;
|
|
5081
|
+
destroy(): void;
|
|
5082
|
+
}
|
|
5083
|
+
declare enum StrategyNames {
|
|
5084
|
+
/**
|
|
5085
|
+
* h265
|
|
5086
|
+
* @brief H.265 策略
|
|
4288
5087
|
*/
|
|
4289
|
-
|
|
5088
|
+
H265 = "h265",
|
|
4290
5089
|
/**
|
|
4291
|
-
*
|
|
4292
|
-
* @brief
|
|
5090
|
+
* 预加载
|
|
5091
|
+
* @brief 预加载策略
|
|
4293
5092
|
*/
|
|
4294
|
-
|
|
4295
|
-
|
|
5093
|
+
PRELOAD = "preload",
|
|
5094
|
+
/**
|
|
5095
|
+
* Range拆分-动态Buffer
|
|
5096
|
+
* @brief 动态 Buffer
|
|
4296
5097
|
*/
|
|
4297
|
-
|
|
4298
|
-
};
|
|
4299
|
-
declare class VeStrategyWrapper {
|
|
4300
|
-
private tea;
|
|
4301
|
-
private static mapStrategyNameToUmdKey;
|
|
4302
|
-
teaId: number;
|
|
4303
|
-
teaChannel: TLogChannel;
|
|
4304
|
-
preloader: PreloaderManagerOrigin | undefined;
|
|
4305
|
-
preloaderStatus: PreloaderStatus;
|
|
4306
|
-
private sdkUmdLoader;
|
|
4307
|
-
private webId;
|
|
4308
|
-
private config;
|
|
4309
|
-
private status;
|
|
4310
|
-
private initPromise;
|
|
4311
|
-
private preloadCacheConfig;
|
|
4312
|
-
private preloadCacheScene;
|
|
4313
|
-
private preloadCacheList;
|
|
4314
|
-
constructor();
|
|
4315
|
-
private initUmdLoader;
|
|
4316
|
-
private fetchWebId;
|
|
4317
|
-
private initTea;
|
|
4318
|
-
private fetchVeStrategy;
|
|
4319
|
-
private fetchStrategies;
|
|
4320
|
-
private initOnce;
|
|
4321
|
-
init(config: StrategyInitOptions): Promise<boolean>;
|
|
4322
|
-
initPreloadService(options: StrategyInitOptions): Promise<boolean>;
|
|
4323
|
-
addPreloadList(list: IPreloadStream[]): void;
|
|
4324
|
-
setPreloadList(list: IPreloadStream[]): Promise<void>;
|
|
4325
|
-
setPreloadScene(preloadScene: PreloadScene, options?: any): void;
|
|
4326
|
-
prepare(): Promise<boolean>;
|
|
4327
|
-
getDeviceId(): string;
|
|
4328
|
-
isReady(): boolean;
|
|
4329
|
-
getStrategyRecommendations(options?: any, commonOptions?: any): StrategyRecommendation;
|
|
4330
|
-
getStrategyRecommendationsAsync(options?: any, commonOptions?: any): Promise<StrategyRecommendation>;
|
|
4331
|
-
isHevcRecommended(): boolean;
|
|
4332
|
-
private initPreloaderConfig;
|
|
4333
|
-
}
|
|
4334
|
-
declare const _default: VeStrategyWrapper;
|
|
4335
|
-
declare enum UmdKeys {
|
|
4336
|
-
HLS = "hls",
|
|
4337
|
-
FLV = "flv",
|
|
4338
|
-
XGVideo = "XGVideo",
|
|
4339
|
-
HLSEncrypt = "hlsEncrypt",
|
|
4340
|
-
DASH = "dash",
|
|
4341
|
-
MP4Encrypt = "mp4Encrypt",
|
|
4342
|
-
DanmuJS = "danmujs",
|
|
4343
|
-
DanmuMask = "danmuMask",
|
|
4344
|
-
StreamProbe = "streamprobe",
|
|
4345
|
-
VeStrategy = "vestrategy",
|
|
4346
|
-
VeStrategyH265 = "vestrategy_h265",
|
|
4347
|
-
VeStrategyPreload = "vestrategy_preload",
|
|
4348
|
-
VeStrategyAdaptRange = "vestrategy_adapt_range",
|
|
4349
|
-
DashAbralgo = "DashAbralgo",
|
|
4350
|
-
Preloader = "preloader"
|
|
5098
|
+
ADAPT_RANGE = "adaptRange"
|
|
4351
5099
|
}
|
|
4352
|
-
/**
|
|
5100
|
+
/** {zh}
|
|
5101
|
+
* 预加载实例,通过预加载实例可执行一些高级方法
|
|
5102
|
+
* @detail Options
|
|
4353
5103
|
* @hidden
|
|
4354
|
-
* @breif umdmap 配置
|
|
4355
5104
|
*/
|
|
4356
|
-
export declare type
|
|
5105
|
+
export declare type PreloaderManager = {
|
|
4357
5106
|
/**
|
|
4358
|
-
*
|
|
5107
|
+
* 移除所有已预加载数据
|
|
4359
5108
|
*/
|
|
4360
|
-
|
|
5109
|
+
removeAll(): void;
|
|
4361
5110
|
/**
|
|
4362
|
-
*
|
|
5111
|
+
* 移除所有预加载任务
|
|
4363
5112
|
*/
|
|
4364
|
-
|
|
5113
|
+
removeAllPreloadTask(): void;
|
|
4365
5114
|
/**
|
|
4366
|
-
*
|
|
5115
|
+
* 清空待预加载列表
|
|
4367
5116
|
*/
|
|
4368
|
-
|
|
5117
|
+
clearPreloadList(): void;
|
|
5118
|
+
};
|
|
5119
|
+
declare enum PreloadScene {
|
|
4369
5120
|
/**
|
|
4370
|
-
*
|
|
5121
|
+
* 普通场景(手动执行预加载)
|
|
4371
5122
|
*/
|
|
4372
|
-
|
|
4373
|
-
}>;
|
|
4374
|
-
declare class UMDLoader {
|
|
4375
|
-
private static jsLoadMap;
|
|
4376
|
-
private static jsLoadPromiseMap;
|
|
4377
|
-
umdMap: UMDMap;
|
|
4378
|
-
backupUmdUrlMap: Record<string, string>;
|
|
4379
|
-
failCallback: (umdName: string, err: any) => any;
|
|
4380
|
-
region: TRegionType;
|
|
4381
|
-
userRegion: TRegionType;
|
|
4382
|
-
customPluginPublicPath: string;
|
|
4383
|
-
importedPlugins: any[];
|
|
4384
|
-
constructor();
|
|
5123
|
+
NORMAL = 0,
|
|
4385
5124
|
/**
|
|
4386
|
-
*
|
|
5125
|
+
* Feed流场景(播放器自动执行预加载)
|
|
5126
|
+
* @brief Feed 流场景(播放器自动执行预加载)
|
|
4387
5127
|
*/
|
|
4388
|
-
|
|
5128
|
+
/** {en}
|
|
5129
|
+
* @brief Feed流场景(播放器自动执行预加载)
|
|
5130
|
+
*/
|
|
5131
|
+
FEED = 1
|
|
5132
|
+
}
|
|
5133
|
+
declare enum PreloadFormat {
|
|
5134
|
+
MP4 = "mp4",
|
|
5135
|
+
HLS = "hls"
|
|
5136
|
+
}
|
|
5137
|
+
declare enum PreloaderStatus {
|
|
4389
5138
|
/**
|
|
4390
|
-
*
|
|
4391
|
-
* @param {Record<string, string>} map 备用地址map
|
|
5139
|
+
* 不可用
|
|
4392
5140
|
*/
|
|
4393
|
-
|
|
5141
|
+
DISABLED = 0,
|
|
4394
5142
|
/**
|
|
4395
|
-
*
|
|
4396
|
-
* 适用 umd 模块
|
|
4397
|
-
* 只能浏览器环境下使用
|
|
4398
|
-
* @param url 额外加载JS 的 CDN 地址
|
|
4399
|
-
* @param isJs 是否js文件
|
|
5143
|
+
* 初始状态
|
|
4400
5144
|
*/
|
|
4401
|
-
|
|
5145
|
+
INITIALIZING = 1,
|
|
4402
5146
|
/**
|
|
4403
|
-
*
|
|
4404
|
-
* @param pluginName 插件名称
|
|
4405
|
-
* @param successCallback 加载完成后执行的回调
|
|
4406
|
-
* @return Promise<any>
|
|
5147
|
+
* 已Ready
|
|
4407
5148
|
*/
|
|
4408
|
-
|
|
5149
|
+
READY = 2,
|
|
5150
|
+
/**
|
|
5151
|
+
* 加载失败
|
|
5152
|
+
*/
|
|
5153
|
+
FAILED = 3
|
|
4409
5154
|
}
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
_emitter: EventEmitter;
|
|
4417
|
-
static defineGetterOrSetter(Obj: any, map: any): void;
|
|
5155
|
+
/** {zh}
|
|
5156
|
+
* 预加载配置更新
|
|
5157
|
+
* @detail Options
|
|
5158
|
+
* @hidden
|
|
5159
|
+
*/
|
|
5160
|
+
export declare type IPreloadUpdateConfig = {
|
|
4418
5161
|
/**
|
|
4419
|
-
*
|
|
5162
|
+
* 向前加载视频个数
|
|
4420
5163
|
*/
|
|
4421
|
-
|
|
5164
|
+
prevCount?: number;
|
|
4422
5165
|
/**
|
|
4423
|
-
*
|
|
4424
|
-
* @param { { sdk: object, pluginName: string, [propName: string]: any;} } args
|
|
5166
|
+
* 向后加载视频个数
|
|
4425
5167
|
*/
|
|
4426
|
-
|
|
5168
|
+
nextCount?: number;
|
|
5169
|
+
};
|
|
5170
|
+
/** {zh}
|
|
5171
|
+
* 预加载视频资源
|
|
5172
|
+
* @detail Options
|
|
5173
|
+
*/
|
|
5174
|
+
export declare type IPreloadStream = {
|
|
4427
5175
|
/**
|
|
4428
|
-
*
|
|
5176
|
+
* 视频唯一ID
|
|
5177
|
+
* @brief 视频 ID
|
|
4429
5178
|
*/
|
|
4430
|
-
|
|
5179
|
+
/** {en}
|
|
5180
|
+
* @brief 视频唯一ID
|
|
5181
|
+
*/
|
|
5182
|
+
vid: string;
|
|
4431
5183
|
/**
|
|
4432
|
-
*
|
|
5184
|
+
* 播放地址
|
|
5185
|
+
* @brief 视频播放地址
|
|
4433
5186
|
*/
|
|
4434
|
-
|
|
5187
|
+
/** {en}
|
|
5188
|
+
* @brief 播放地址
|
|
5189
|
+
*/
|
|
5190
|
+
url: string;
|
|
4435
5191
|
/**
|
|
4436
|
-
*
|
|
5192
|
+
* 视频清晰度
|
|
4437
5193
|
*/
|
|
4438
|
-
|
|
5194
|
+
definition: string;
|
|
4439
5195
|
/**
|
|
4440
|
-
*
|
|
5196
|
+
* 视频streamType,支持 mp4、hls
|
|
5197
|
+
* @brief 视频流类型,支持 mp4、hls
|
|
4441
5198
|
*/
|
|
4442
|
-
|
|
5199
|
+
/** {en}
|
|
5200
|
+
* @brief video streamType,support mp4、hls
|
|
5201
|
+
*/
|
|
5202
|
+
streamType: string;
|
|
4443
5203
|
/**
|
|
4444
|
-
*
|
|
5204
|
+
* 视频codec,暂支持 h264
|
|
5205
|
+
* @brief 视频编码格式,当前仅支持 mp4
|
|
4445
5206
|
*/
|
|
4446
|
-
|
|
5207
|
+
/** {en}
|
|
5208
|
+
* @brief 视频codec,暂支持 h264
|
|
5209
|
+
*/
|
|
5210
|
+
codec: string;
|
|
4447
5211
|
/**
|
|
4448
|
-
*
|
|
4449
|
-
* @
|
|
5212
|
+
* 码率, 数据统计需要,可选填
|
|
5213
|
+
* @brief 码率, 数据统计需要,选填
|
|
4450
5214
|
*/
|
|
4451
|
-
|
|
5215
|
+
/** {en}
|
|
5216
|
+
* @brief 码率, 数据统计需要,可选填
|
|
5217
|
+
*/
|
|
5218
|
+
bitrate: number;
|
|
4452
5219
|
/**
|
|
4453
|
-
*
|
|
4454
|
-
* @
|
|
5220
|
+
* 视频时长,数据统计需要,可选填
|
|
5221
|
+
* @brief 视频时长,数据统计需要,选填
|
|
4455
5222
|
*/
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4459
|
-
|
|
4460
|
-
isPlayByToken: boolean;
|
|
4461
|
-
isEncrypt: boolean;
|
|
4462
|
-
tokenInfo: ITokenInfo;
|
|
4463
|
-
keyTokenInfo: ITokenInfo;
|
|
4464
|
-
thirdPartyDrmAuthTokenInfo: ITokenInfo;
|
|
4465
|
-
config: IPlayAuthTokenConfig;
|
|
4466
|
-
privateDrmAuthToken: string;
|
|
4467
|
-
useUnionInfoDRM: boolean;
|
|
4468
|
-
sessionId: string;
|
|
4469
|
-
retryCount: number;
|
|
4470
|
-
playInfo?: VideoInfoRes;
|
|
4471
|
-
constructor(args: any);
|
|
4472
|
-
beforePlayerCreate(): Promise<void>;
|
|
4473
|
-
getVideoInfo(): Promise<{
|
|
4474
|
-
vid: string;
|
|
4475
|
-
playList: Stream[];
|
|
4476
|
-
codec: ICodecType;
|
|
4477
|
-
defaultDefinition: string;
|
|
4478
|
-
}>;
|
|
4479
|
-
getVideos(): Promise<any>;
|
|
4480
|
-
getPrivateDrmInfo(playList: Stream[], vid: string, streamType: string): Promise<void>;
|
|
4481
|
-
getThumbnailConfig(thumbs: IThumbInfoItem[]): void;
|
|
4482
|
-
getBarrageMaskUrl(url: string): void;
|
|
4483
|
-
getDrmConfig(videoInfo: IVideoInfo): void;
|
|
4484
|
-
init(): void;
|
|
4485
|
-
initConfig(getVideoByToken: IPlayAuthTokenConfig): void;
|
|
5223
|
+
/** {en}
|
|
5224
|
+
* @brief 视频时长,数据统计需要,可选填
|
|
5225
|
+
*/
|
|
5226
|
+
duration: number;
|
|
4486
5227
|
/**
|
|
4487
|
-
*
|
|
4488
|
-
* @
|
|
4489
|
-
* @param {boolean} isNewVideo 是否新视频,即是否为切换视频
|
|
5228
|
+
* 视频大小,数据统计需要,可选填
|
|
5229
|
+
* @brief 视频大小,数据统计需要,选填
|
|
4490
5230
|
*/
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
}
|
|
5231
|
+
/** {en}
|
|
5232
|
+
* @brief 视频大小,数据统计需要,可选填
|
|
5233
|
+
*/
|
|
5234
|
+
size: number;
|
|
5235
|
+
};
|
|
5236
|
+
export type TLogChannel = "cn" | "va" | "sg";
|
|
4496
5237
|
/** {zh}
|
|
4497
5238
|
* @hidden
|
|
5239
|
+
* h265策略配置
|
|
5240
|
+
* @detail Options
|
|
4498
5241
|
*/
|
|
4499
|
-
export
|
|
4500
|
-
maxTargetCacheDur: number;
|
|
4501
|
-
minTargetCacheDur: number;
|
|
4502
|
-
rangeMaxDuration: number;
|
|
4503
|
-
rangeMinDuration: number;
|
|
4504
|
-
cacheSafeFactor: number;
|
|
4505
|
-
estPTcontrol: boolean;
|
|
4506
|
-
estPlayTime: number;
|
|
4507
|
-
minBandwidth: number;
|
|
4508
|
-
minDangerThreshold: number;
|
|
4509
|
-
rangeControl: boolean;
|
|
4510
|
-
rangeMinSize: number;
|
|
4511
|
-
safeFactor: number;
|
|
4512
|
-
targetCacheControl: boolean;
|
|
4513
|
-
}
|
|
4514
|
-
declare abstract class AbstractBaseAdapter {
|
|
4515
|
-
isLive: boolean;
|
|
4516
|
-
playerData: PlayerData;
|
|
4517
|
-
streamType: string;
|
|
4518
|
-
constructor(options: {
|
|
4519
|
-
configs: IPlayerConfig;
|
|
4520
|
-
playerData: PlayerData;
|
|
4521
|
-
streamType: string;
|
|
4522
|
-
});
|
|
5242
|
+
export declare type IH265Config = {
|
|
4523
5243
|
/**
|
|
4524
|
-
*
|
|
5244
|
+
* h265策略依赖Module
|
|
4525
5245
|
*/
|
|
4526
|
-
|
|
4527
|
-
abstract canOpenAbr(vidPlayInfo?: VideoInfoRes): boolean;
|
|
4528
|
-
abstract applyAbrPluginConfig(_finalOptions: any, _autoBitrateOpts: any): void;
|
|
4529
|
-
abstract prepareAbrModule(_playerData: any, _sdkUmdLoader: any): void;
|
|
4530
|
-
abstract needAbrAutoDefinition(): boolean;
|
|
4531
|
-
abstract setAbrDefaultDefiWithAuto(): boolean;
|
|
4532
|
-
abstract generatePlaylistFromServer(res: VideoInfoRes): Stream[];
|
|
4533
|
-
abstract canAdaptRangeEnable(): boolean;
|
|
4534
|
-
abstract adaptRangeDefaultOptions(): IAdaptRangeDefaultOptions | undefined;
|
|
4535
|
-
abstract applyAdaptRangePluginConfig(_finalOptions: any, _adaptRangeOptions: any): void;
|
|
4536
|
-
abstract applyAdaptRangeStrategy(_finalOptions: any, _adaptRangeOptions: any): void;
|
|
4537
|
-
abstract getPlugins(umdLoader: UMDLoader): Promise<XGPlugin[]>;
|
|
4538
|
-
abstract setPluginConfigInVid(videoInfo: IVideoInfo, context: AuthToken): void;
|
|
4539
|
-
}
|
|
4540
|
-
declare class PlayerData {
|
|
4541
|
-
id?: string;
|
|
4542
|
-
root?: HTMLElement;
|
|
4543
|
-
configs: IPlayerConfig;
|
|
4544
|
-
strategyConfig?: StrategyConfigOptions;
|
|
4545
|
-
type: string;
|
|
4546
|
-
isLive: boolean;
|
|
4547
|
-
options: any;
|
|
4548
|
-
isMobile: boolean;
|
|
4549
|
-
playList: Stream[];
|
|
4550
|
-
plugins: any[];
|
|
4551
|
-
openSoftDecoding: boolean;
|
|
4552
|
-
defaultConfig: IDefaultConfig | undefined;
|
|
4553
|
-
isHitDefault: boolean;
|
|
4554
|
-
codec?: ICodecType;
|
|
4555
|
-
enableH265Degrade: boolean;
|
|
4556
|
-
languageData: {
|
|
4557
|
-
extraLangList: IXGI18nText[];
|
|
4558
|
-
extendLangList: IXGI18nText[];
|
|
4559
|
-
};
|
|
4560
|
-
current: Current;
|
|
4561
|
-
onMediaExpired: () => Promise<SourceConfig>;
|
|
4562
|
-
onTokenExpired: () => Promise<IPlayAuthTokenConfig>;
|
|
4563
|
-
unionId?: string;
|
|
4564
|
-
unionInfo?: string;
|
|
4565
|
-
isMusic?: boolean;
|
|
4566
|
-
sdkPlugins: any[];
|
|
4567
|
-
useHlsPluginForSafari: boolean;
|
|
4568
|
-
enableMenu: boolean;
|
|
4569
|
-
region: TRegionType;
|
|
4570
|
-
userRegion: TRegionType;
|
|
4571
|
-
playDomainDegrade: boolean;
|
|
4572
|
-
strategiesPlugins: any[];
|
|
4573
|
-
strategiesPluginConfigs: any;
|
|
5246
|
+
Strategy?: any;
|
|
4574
5247
|
/**
|
|
4575
|
-
*
|
|
5248
|
+
* 是否禁用265策略
|
|
5249
|
+
*/
|
|
5250
|
+
disabled?: boolean;
|
|
5251
|
+
} & VeStrategyH265Config;
|
|
5252
|
+
/** {zh}
|
|
5253
|
+
* 预加载初始配置
|
|
5254
|
+
* @detail Options
|
|
5255
|
+
*/
|
|
5256
|
+
export declare type IPreloadConfig = {
|
|
5257
|
+
/** {zh}
|
|
5258
|
+
* 预加载场景
|
|
5259
|
+
* - 0:手动执行
|
|
5260
|
+
* - 1:字段执行
|
|
5261
|
+
* @default 0
|
|
5262
|
+
*/
|
|
5263
|
+
/** {en}
|
|
5264
|
+
* preload scene
|
|
5265
|
+
* - 0: manual execution
|
|
5266
|
+
* - 1: field execution
|
|
5267
|
+
* @default 0
|
|
5268
|
+
*/
|
|
5269
|
+
preloadScene?: PreloadScene;
|
|
5270
|
+
/** {zh}
|
|
5271
|
+
* @brief 视频格式
|
|
5272
|
+
* - mp4: mp4格式
|
|
5273
|
+
* - hls: hls格式
|
|
5274
|
+
* @default mp4
|
|
5275
|
+
*/
|
|
5276
|
+
/** {en}
|
|
5277
|
+
* @brief video format
|
|
5278
|
+
* - mp4: mp4 format
|
|
5279
|
+
* - hls: hls format
|
|
5280
|
+
* @default mp4
|
|
5281
|
+
*/
|
|
5282
|
+
format?: PreloadFormat;
|
|
5283
|
+
/** {zh}
|
|
5284
|
+
* 向前预加载视频个数,Feed流场景时生效
|
|
5285
|
+
* @default 1
|
|
5286
|
+
* @brief 向前预加载视频个数。Feed 流场景时生效。
|
|
5287
|
+
*/
|
|
5288
|
+
/** {en}
|
|
5289
|
+
* @brief 向前预加载视频个数,Feed流场景时生效
|
|
5290
|
+
*/
|
|
5291
|
+
prevCount?: number;
|
|
5292
|
+
/**
|
|
5293
|
+
* 向后预加载视频个数,Feed流场景生效
|
|
5294
|
+
* @default 2
|
|
5295
|
+
* @brief 向后预加载视频个数。Feed 流场景生效
|
|
5296
|
+
*/
|
|
5297
|
+
/** {en}
|
|
5298
|
+
* @brief 向后预加载视频个数,Feed流场景生效
|
|
5299
|
+
*/
|
|
5300
|
+
nextCount?: number;
|
|
5301
|
+
/**
|
|
5302
|
+
* 单个视频预加载时长
|
|
5303
|
+
* @default 5
|
|
5304
|
+
*/
|
|
5305
|
+
preloadTime?: number;
|
|
5306
|
+
/**
|
|
5307
|
+
* 最大视频缓存个数
|
|
5308
|
+
* @default 15
|
|
5309
|
+
*/
|
|
5310
|
+
preloadMaxCacheCount?: number;
|
|
5311
|
+
/**
|
|
5312
|
+
* 预加载依赖Module
|
|
5313
|
+
* @brief 预加载依赖 Module
|
|
5314
|
+
*/
|
|
5315
|
+
/** {en}
|
|
5316
|
+
* @brief 预加载依赖Module
|
|
5317
|
+
*/
|
|
5318
|
+
Strategy?: any;
|
|
5319
|
+
/**
|
|
5320
|
+
* 是否禁用预加载
|
|
5321
|
+
*/
|
|
5322
|
+
disabled?: boolean;
|
|
5323
|
+
};
|
|
5324
|
+
/** {zh}
|
|
5325
|
+
* @hidden
|
|
5326
|
+
* @detail Options
|
|
5327
|
+
* @brief Range 拆分(动态Buffer)策略初始配置
|
|
5328
|
+
* @notes adaptRange策略配置结构较复杂,暂不开放Range默认配置自定义,使用策略下发
|
|
5329
|
+
*/
|
|
5330
|
+
export declare type IAdaptRangeConfig = {
|
|
5331
|
+
/** {zh}
|
|
5332
|
+
* @brief 预加载依赖Module
|
|
5333
|
+
*/
|
|
5334
|
+
Strategy?: any;
|
|
5335
|
+
/** {zh}
|
|
5336
|
+
* @brief 是否禁用Range拆分策略
|
|
4576
5337
|
*/
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
private isAutoBitrateEnable;
|
|
4585
|
-
adapter: AbstractBaseAdapter;
|
|
5338
|
+
disabled?: boolean;
|
|
5339
|
+
};
|
|
5340
|
+
/** {zh}
|
|
5341
|
+
* @detail Options
|
|
5342
|
+
* @brief 策略配置。
|
|
5343
|
+
*/
|
|
5344
|
+
export declare type StrategyConfigOptions = {
|
|
4586
5345
|
/**
|
|
4587
|
-
*
|
|
5346
|
+
* h265策略配置
|
|
5347
|
+
* @hidden
|
|
5348
|
+
* @brief H.265 策略配置。
|
|
4588
5349
|
*/
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
};
|
|
4593
|
-
/**
|
|
4594
|
-
* @brief 播放器sdk实例
|
|
5350
|
+
/** {en}
|
|
5351
|
+
* @hidden
|
|
5352
|
+
* @brief h265策略配置
|
|
4595
5353
|
*/
|
|
4596
|
-
|
|
5354
|
+
[StrategyNames.H265]?: boolean | IH265Config;
|
|
4597
5355
|
/**
|
|
4598
|
-
*
|
|
5356
|
+
* 预加载配置
|
|
5357
|
+
* @brief 预加载配置。
|
|
4599
5358
|
*/
|
|
4600
|
-
|
|
4601
|
-
|
|
4602
|
-
* @brief 私有加密会话id
|
|
5359
|
+
/** {en}
|
|
5360
|
+
* @brief 预加载配置
|
|
4603
5361
|
*/
|
|
4604
|
-
|
|
4605
|
-
constructor(configs: IPlayerConfig & {
|
|
4606
|
-
licensSupportModuleList: string[];
|
|
4607
|
-
}, sdk: VePlayer);
|
|
5362
|
+
[StrategyNames.PRELOAD]?: boolean | IPreloadConfig;
|
|
4608
5363
|
/**
|
|
4609
|
-
*
|
|
4610
|
-
* @
|
|
5364
|
+
* Range拆分(动态Buffer)
|
|
5365
|
+
* @brief 动态 Buffer 配置。
|
|
4611
5366
|
*/
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
checkAutoBitratePlayList(): boolean;
|
|
4615
|
-
getABRStreamInfo(streamType: any, originDefaultStream: any): {
|
|
4616
|
-
defaultDefinition: string;
|
|
4617
|
-
defaultStream: any;
|
|
4618
|
-
playList: Stream[];
|
|
4619
|
-
};
|
|
4620
|
-
isCurrentH265(): boolean;
|
|
4621
|
-
setDrmType(drmType: EDRMTYPE): void;
|
|
4622
|
-
getCurrentByDefaultConfig(): Stream;
|
|
4623
|
-
initCurrent(currentStreams: Stream): void;
|
|
4624
|
-
initCheckExpireData(): void;
|
|
4625
|
-
/**
|
|
4626
|
-
* 更新过期检测的数据
|
|
5367
|
+
/** {en}
|
|
5368
|
+
* @brief Range拆分(动态Buffer)
|
|
4627
5369
|
*/
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
5370
|
+
[StrategyNames.ADAPT_RANGE]?: boolean | IAdaptRangeConfig;
|
|
5371
|
+
};
|
|
5372
|
+
/** {zh}
|
|
5373
|
+
* 播放器预初始化配置
|
|
5374
|
+
* @detail Options
|
|
5375
|
+
*/
|
|
5376
|
+
export declare type StrategyInitOptions = {
|
|
5377
|
+
/** {zh}
|
|
5378
|
+
* 应用ID
|
|
5379
|
+
* @brief 应用 ID
|
|
4635
5380
|
*/
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
/**
|
|
4639
|
-
* @description: 获取当前的streamType
|
|
5381
|
+
/** {en}
|
|
5382
|
+
* @brief appid
|
|
4640
5383
|
*/
|
|
4641
|
-
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
isPlayAutoDefinition(def?: string): boolean;
|
|
4647
|
-
isDefinitionMatch(pre: any, next: any): boolean;
|
|
4648
|
-
/**
|
|
4649
|
-
* @description: 获取满足当前直播条件的流
|
|
5384
|
+
appId: number;
|
|
5385
|
+
/** {zh}
|
|
5386
|
+
* @brief 用户所在区域
|
|
5387
|
+
* @default cn
|
|
5388
|
+
* @notes 如果是海外用户,播放时请填写'mya'
|
|
4650
5389
|
*/
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
* @
|
|
5390
|
+
/** {en}
|
|
5391
|
+
* @brief The region where the user is located,
|
|
5392
|
+
* @default sg
|
|
4654
5393
|
*/
|
|
4655
|
-
|
|
4656
|
-
/**
|
|
4657
|
-
*
|
|
4658
|
-
* @
|
|
5394
|
+
region?: TRegionType;
|
|
5395
|
+
/** {zh}
|
|
5396
|
+
* 高级能力(策略)配置
|
|
5397
|
+
* @brief 策略配置
|
|
4659
5398
|
*/
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
* @description: 根据线路ID获取清晰度list,用于获取某个线路下有几个清晰度
|
|
4663
|
-
* @param {number} lineId
|
|
5399
|
+
/** {en}
|
|
5400
|
+
* @brief Advanced Capability (Strategy) Configuration
|
|
4664
5401
|
*/
|
|
4665
|
-
|
|
4666
|
-
/**
|
|
4667
|
-
*
|
|
4668
|
-
* @
|
|
5402
|
+
strategies: StrategyConfigOptions;
|
|
5403
|
+
/** {zh}
|
|
5404
|
+
* 设备ID
|
|
5405
|
+
* @brief 设备 ID
|
|
4669
5406
|
*/
|
|
4670
|
-
|
|
4671
|
-
|
|
4672
|
-
* @description: 获取当期清晰的上一级清晰度或下一级清晰度
|
|
4673
|
-
* @param {boolean} isDown 是否取下一级清晰度
|
|
4674
|
-
* @param {string[]} demotePriority 清晰度降级顺序
|
|
5407
|
+
/** {en}
|
|
5408
|
+
* @brief device id
|
|
4675
5409
|
*/
|
|
4676
|
-
|
|
4677
|
-
/**
|
|
4678
|
-
*
|
|
4679
|
-
* @
|
|
5410
|
+
deviceId?: string;
|
|
5411
|
+
/** {zh}
|
|
5412
|
+
* @brief 手动注入依赖插件,默认自动加载
|
|
5413
|
+
* @default -
|
|
4680
5414
|
*/
|
|
4681
|
-
|
|
4682
|
-
|
|
4683
|
-
*
|
|
5415
|
+
/** {en}
|
|
5416
|
+
* @brief Manually inject dependency plugins, automatically load by default
|
|
5417
|
+
* @default -
|
|
4684
5418
|
*/
|
|
4685
|
-
|
|
4686
|
-
setVodTeaId(): void;
|
|
5419
|
+
plugins?: any[];
|
|
4687
5420
|
/**
|
|
4688
|
-
*
|
|
4689
|
-
* @
|
|
5421
|
+
* 策略Module,默认自动加载
|
|
5422
|
+
* @brief 策略 Module,默认自动加载
|
|
5423
|
+
* @default -
|
|
4690
5424
|
*/
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
*
|
|
5425
|
+
/** {en}
|
|
5426
|
+
* @brief Strategy Module, automatically loaded by default
|
|
5427
|
+
* @default -
|
|
4694
5428
|
*/
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
|
|
4698
|
-
|
|
4699
|
-
|
|
4700
|
-
|
|
4701
|
-
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4710
|
-
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
hide(): void;
|
|
4730
|
-
handleHide(e: any): void;
|
|
4731
|
-
bind(event: string, eventHandle: any, isBubble?: boolean): void;
|
|
4732
|
-
destroy(): void;
|
|
5429
|
+
Module?: typeof VeStrategy;
|
|
5430
|
+
};
|
|
5431
|
+
declare class VeStrategyManager {
|
|
5432
|
+
tea: Collector;
|
|
5433
|
+
private static mapStrategyNameToUmdKey;
|
|
5434
|
+
teaId: number;
|
|
5435
|
+
teaChannel: TLogChannel;
|
|
5436
|
+
private sdkUmdLoader;
|
|
5437
|
+
private webId;
|
|
5438
|
+
config: StrategyInitOptions;
|
|
5439
|
+
private status;
|
|
5440
|
+
private initPromise;
|
|
5441
|
+
Module: typeof VeStrategy;
|
|
5442
|
+
private preloadWrapper;
|
|
5443
|
+
private h265Wrapper;
|
|
5444
|
+
get preloader(): PreloaderManagerOrigin | undefined;
|
|
5445
|
+
get preloaderStatus(): PreloaderStatus;
|
|
5446
|
+
constructor();
|
|
5447
|
+
private initUmdLoader;
|
|
5448
|
+
private fetchWebId;
|
|
5449
|
+
private initTea;
|
|
5450
|
+
private fetchVeStrategy;
|
|
5451
|
+
private fetchStrategies;
|
|
5452
|
+
private initOnce;
|
|
5453
|
+
init(config: StrategyInitOptions): Promise<boolean>;
|
|
5454
|
+
addPreloadList(list: IPreloadStream[]): void;
|
|
5455
|
+
setPreloadList(list: IPreloadStream[]): Promise<void>;
|
|
5456
|
+
setPreloadScene(preloadScene: PreloadScene, options?: any): void;
|
|
5457
|
+
prepare(): Promise<boolean>;
|
|
5458
|
+
getDeviceId(): string;
|
|
5459
|
+
isReady(): boolean;
|
|
5460
|
+
getStrategyRecommendations(options?: any, commonOptions?: any): StrategyRecommendation;
|
|
5461
|
+
getStrategyRecommendationsAsync(options?: any, commonOptions?: any): Promise<StrategyRecommendation>;
|
|
5462
|
+
isHevcRecommended(): boolean;
|
|
4733
5463
|
}
|
|
5464
|
+
declare const _default: VeStrategyManager;
|
|
4734
5465
|
export interface IlicenseContent {
|
|
4735
5466
|
content: string;
|
|
4736
5467
|
sign: string;
|
|
@@ -4850,6 +5581,17 @@ declare class VePlayer {
|
|
|
4850
5581
|
* @memberof VePlayer
|
|
4851
5582
|
*/
|
|
4852
5583
|
private _emitter;
|
|
5584
|
+
/** 最近一次用户选择的音轨,用于清晰度切换后通过 setAudioOption 恢复音轨 */
|
|
5585
|
+
private _lastSelectedAudioTrack;
|
|
5586
|
+
/**
|
|
5587
|
+
* `_applyAudioPreference` 发起恢复时置 true,hls.js 随后触发的 hlsAudioTrackSwitched
|
|
5588
|
+
* 属于自动切轨,不应覆盖 `_lastSelectedAudioTrack`;事件触发后自动清除。
|
|
5589
|
+
* 使用 timeout 兜底,防止 hls.js 未触发事件时标志永久残留。
|
|
5590
|
+
*/
|
|
5591
|
+
private _suppressAudioTrackMemory;
|
|
5592
|
+
private _suppressAudioTrackMemoryTimer;
|
|
5593
|
+
/** playNext 后置为 true,直到新视频首个 addtrack 到达前屏蔽旧视频 change 事件的干扰 */
|
|
5594
|
+
private _playNextPending;
|
|
4853
5595
|
/**
|
|
4854
5596
|
*
|
|
4855
5597
|
*
|
|
@@ -4956,6 +5698,10 @@ declare class VePlayer {
|
|
|
4956
5698
|
* @param list 待预加载视频列表,详情见{@link IPreloadStream[]}
|
|
4957
5699
|
*/
|
|
4958
5700
|
static setPreloadList(list: IPreloadStream[]): Promise<void>;
|
|
5701
|
+
/** {zh}
|
|
5702
|
+
* @brief 是否支持iOS的MMS
|
|
5703
|
+
*/
|
|
5704
|
+
static isMMSSupported: typeof isMMSSupported;
|
|
4959
5705
|
/**
|
|
4960
5706
|
* @hidden
|
|
4961
5707
|
* @param codec
|
|
@@ -5252,6 +5998,9 @@ declare class VePlayer {
|
|
|
5252
5998
|
* @memberof VePlayer
|
|
5253
5999
|
*/
|
|
5254
6000
|
private _bindSdkEvents;
|
|
6001
|
+
private _bindNativeAudioTrackEvents;
|
|
6002
|
+
private _onNativeAddTrack;
|
|
6003
|
+
private _onNativeTrackChange;
|
|
5255
6004
|
/** {zh}
|
|
5256
6005
|
* @hidden
|
|
5257
6006
|
*
|
|
@@ -5265,6 +6014,14 @@ declare class VePlayer {
|
|
|
5265
6014
|
* @return {*}
|
|
5266
6015
|
* @memberof VePlayer
|
|
5267
6016
|
*/
|
|
6017
|
+
/** @hidden 获取 HLS 实例(兼容加密和普通 HLS 插件) */
|
|
6018
|
+
private _getHlsInstance;
|
|
6019
|
+
/** @hidden 在 HLS 音轨列表就绪或清晰度切换后,恢复上次选中的音轨;找不到时应用 audioPreference 配置 */
|
|
6020
|
+
private _applyAudioPreference;
|
|
6021
|
+
private _setSuppressAudioTrackMemory;
|
|
6022
|
+
private _clearSuppressAudioTrackMemory;
|
|
6023
|
+
/** @hidden 在 native AudioTrackList 就绪后,恢复上次选中的音轨;找不到时 fallback 到 audioPreference */
|
|
6024
|
+
private _applyAudioPreferenceNative;
|
|
5268
6025
|
private _offPlayerEvents;
|
|
5269
6026
|
/** {zh}
|
|
5270
6027
|
* @hidden 切换插件展示
|
|
@@ -5404,6 +6161,38 @@ declare class VePlayer {
|
|
|
5404
6161
|
selected: boolean;
|
|
5405
6162
|
[propName: string]: any;
|
|
5406
6163
|
}>;
|
|
6164
|
+
/** {zh}
|
|
6165
|
+
* @brief 获取音频轨道列表。HLS 流通过 hls.js 获取,iOS 原生播放通过 HTMLMediaElement.audioTracks 获取。
|
|
6166
|
+
* @notes 每项包含 `id`、`name`、`lang`、`channels`、`default`、`selected` 字段;轨道数量 ≤ 1 时返回空数组。
|
|
6167
|
+
*/
|
|
6168
|
+
getAudioTracks(): AudioTrackInfo[];
|
|
6169
|
+
/** {zh}
|
|
6170
|
+
* @brief 获取当前激活的音频轨道。
|
|
6171
|
+
* @notes HLS 流通过 hls.js 获取,iOS 原生播放通过 HTMLMediaElement.audioTracks 获取;无激活轨道时返回 null。
|
|
6172
|
+
*/
|
|
6173
|
+
getCurrentAudioTrack(): AudioTrackInfo | null;
|
|
6174
|
+
/** {zh}
|
|
6175
|
+
* @brief 切换音频轨道。
|
|
6176
|
+
* @param id 目标轨道的 id,可通过 `getAudioTracks()` 获取。
|
|
6177
|
+
* @param lang 目标轨道的语言代码(BCP-47)。若提供,则 id 与 lang 同时匹配时才执行切换,
|
|
6178
|
+
* 可用于 iOS 原生 audioTracks 中存在重复 id 的场景。
|
|
6179
|
+
* @notes 切换完成后会触发 `Events.AUDIO_TRACK_CHANGE` 事件;
|
|
6180
|
+
* 同时 PC 端和移动端音频轨道插件的选中状态会自动更新。
|
|
6181
|
+
*/
|
|
6182
|
+
switchAudioTrack(track: AudioTrackInfo): void;
|
|
6183
|
+
/** {zh}
|
|
6184
|
+
* @brief 当前播放器命中预加载的情况
|
|
6185
|
+
* @type {{
|
|
6186
|
+
* hit: number, // 0-未命中 1-命中
|
|
6187
|
+
* duration: 0, // 预加载时长
|
|
6188
|
+
* length: 0 // 预加载数据长度
|
|
6189
|
+
* }}
|
|
6190
|
+
*/
|
|
6191
|
+
get preLoadData(): {
|
|
6192
|
+
hit: number;
|
|
6193
|
+
duration?: number;
|
|
6194
|
+
length?: number;
|
|
6195
|
+
};
|
|
5407
6196
|
/** {zh}
|
|
5408
6197
|
* @brief 初始化多语言词典
|
|
5409
6198
|
*
|
|
@@ -5775,15 +6564,17 @@ export declare class Subtitle extends Plugin {
|
|
|
5775
6564
|
*/
|
|
5776
6565
|
_initExtSubTitle(defaultIndex: any): void;
|
|
5777
6566
|
_renderList(defaultIndex: any): void;
|
|
5778
|
-
_onOff()
|
|
5779
|
-
_onChange(data: any)
|
|
5780
|
-
_onListReset(data: any)
|
|
6567
|
+
_onOff: () => void;
|
|
6568
|
+
_onChange: (data: any) => void;
|
|
6569
|
+
_onListReset: (data: any) => void;
|
|
5781
6570
|
updateCurItem(cIndex: any, subtitle: any): void;
|
|
5782
6571
|
initEvents(): void;
|
|
5783
|
-
handleButtonChange(e: any)
|
|
6572
|
+
handleButtonChange: (e: any) => void;
|
|
6573
|
+
onEnter: (e: any) => void;
|
|
6574
|
+
onLeave: (e: any) => void;
|
|
5784
6575
|
showList(): void;
|
|
5785
6576
|
hideList(): void;
|
|
5786
|
-
openSubtitle():
|
|
6577
|
+
openSubtitle(): Promise<any>;
|
|
5787
6578
|
getSubTitleIndex(list: any, subtitle?: {
|
|
5788
6579
|
id: string;
|
|
5789
6580
|
language: string;
|
|
@@ -5825,9 +6616,9 @@ export declare class Subtitle extends Plugin {
|
|
|
5825
6616
|
/**
|
|
5826
6617
|
*
|
|
5827
6618
|
* @param {ISubTitleItem} subtitle
|
|
5828
|
-
* @returns
|
|
6619
|
+
* @returns {Promise<void>}
|
|
5829
6620
|
*/
|
|
5830
|
-
switchSubTitle(subtitle?: ISubTitleItem):
|
|
6621
|
+
switchSubTitle(subtitle?: ISubTitleItem): Promise<void>;
|
|
5831
6622
|
switchOffSubtitle(): void;
|
|
5832
6623
|
noShowSubtitle(): void;
|
|
5833
6624
|
renderItemList(): void;
|
|
@@ -6191,6 +6982,10 @@ export declare const Events: {
|
|
|
6191
6982
|
* @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
|
|
6192
6983
|
*/
|
|
6193
6984
|
ABR_AUTO_DESC_CHANGE: string;
|
|
6985
|
+
/** {zh}
|
|
6986
|
+
* @brief 播放插件内核的扩展事件
|
|
6987
|
+
*/
|
|
6988
|
+
CORE_EVENT: string;
|
|
6194
6989
|
/** {zh}
|
|
6195
6990
|
* @brief 播放器实例创建完成时触发。
|
|
6196
6991
|
*/
|
|
@@ -6397,6 +7192,14 @@ export declare const Events: {
|
|
|
6397
7192
|
* @brief license 提醒
|
|
6398
7193
|
*/
|
|
6399
7194
|
LICENSE_STATUS_WARNING: string;
|
|
7195
|
+
/** {zh}
|
|
7196
|
+
* @brief HLS 音频轨道列表更新时触发。`data.audioTracks` 为完整轨道数组。
|
|
7197
|
+
*/
|
|
7198
|
+
AUDIO_TRACKS_UPDATED: string;
|
|
7199
|
+
/** {zh}
|
|
7200
|
+
* @brief 音频轨道切换完成时触发。`data.id` 为新轨道 id,`data.audioTrack` 为完整轨道对象。
|
|
7201
|
+
*/
|
|
7202
|
+
AUDIO_TRACK_CHANGE: string;
|
|
6400
7203
|
/** {zh}
|
|
6401
7204
|
* @brief 在播放被终止时触发。例如当播放中的视频重新开始播放。
|
|
6402
7205
|
*/
|
|
@@ -6720,6 +7523,14 @@ export declare const Event: {
|
|
|
6720
7523
|
* @brief license 提醒
|
|
6721
7524
|
*/
|
|
6722
7525
|
LICENSE_STATUS_WARNING: string;
|
|
7526
|
+
/** {zh}
|
|
7527
|
+
* @brief HLS 音频轨道列表更新时触发。`data.audioTracks` 为完整轨道数组。
|
|
7528
|
+
*/
|
|
7529
|
+
AUDIO_TRACKS_UPDATED: string;
|
|
7530
|
+
/** {zh}
|
|
7531
|
+
* @brief 音频轨道切换完成时触发。`data.id` 为新轨道 id,`data.audioTrack` 为完整轨道对象。
|
|
7532
|
+
*/
|
|
7533
|
+
AUDIO_TRACK_CHANGE: string;
|
|
6723
7534
|
};
|
|
6724
7535
|
PluginEvents: {
|
|
6725
7536
|
/** {zh}
|
|
@@ -6862,6 +7673,10 @@ export declare const Event: {
|
|
|
6862
7673
|
* @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
|
|
6863
7674
|
*/
|
|
6864
7675
|
ABR_AUTO_DESC_CHANGE: string;
|
|
7676
|
+
/** {zh}
|
|
7677
|
+
* @brief 播放插件内核的扩展事件
|
|
7678
|
+
*/
|
|
7679
|
+
CORE_EVENT: string;
|
|
6865
7680
|
};
|
|
6866
7681
|
};
|
|
6867
7682
|
export * from "xgplayer";
|