@byteplus/veplayer 1.15.3-rc.3 → 1.15.3-rc.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +13 -0
  2. package/index.d.ts +1144 -311
  3. package/index.min.css +1 -1
  4. package/index.min.js +2 -2
  5. package/lite.cjs +2 -0
  6. package/lite.cjs.css +1 -0
  7. package/lite.d.ts +366 -0
  8. package/lite.esm.css +1 -0
  9. package/lite.esm.mjs +2 -0
  10. package/lite.min.css +1 -0
  11. package/lite.min.js +2 -0
  12. package/package.json +25 -1
  13. package/plugin/XGVideo.js +2 -1
  14. package/plugin/modules/DashAbralgo.d.ts +2 -0
  15. package/plugin/modules/DashAbralgo.mjs +2 -0
  16. package/plugin/modules/XGVideo.d.ts +2 -0
  17. package/plugin/modules/XGVideo.mjs +2 -0
  18. package/plugin/modules/danmuMask.d.ts +2 -0
  19. package/plugin/modules/danmuMask.mjs +2 -0
  20. package/plugin/modules/danmujs.d.ts +2 -0
  21. package/plugin/modules/danmujs.mjs +3 -0
  22. package/plugin/modules/dash.d.ts +2 -0
  23. package/plugin/modules/dash.mjs +2 -0
  24. package/plugin/modules/flv.d.ts +2 -0
  25. package/plugin/modules/flv.mjs +2 -0
  26. package/plugin/modules/hls.d.ts +2 -0
  27. package/plugin/modules/hls.mjs +2 -0
  28. package/plugin/modules/hlsEncrypt.d.ts +2 -0
  29. package/plugin/modules/hlsEncrypt.mjs +2 -0
  30. package/plugin/modules/mp4Encrypt.d.ts +2 -0
  31. package/plugin/modules/mp4Encrypt.mjs +2 -0
  32. package/plugin/modules/preloader.d.ts +2 -0
  33. package/plugin/modules/preloader.mjs +2 -0
  34. package/plugin/modules/streamprobe.d.ts +2 -0
  35. package/plugin/modules/streamprobe.mjs +2 -0
  36. package/plugin/modules/vestrategy.d.ts +2 -0
  37. package/plugin/modules/vestrategy.mjs +2 -0
  38. package/plugin/modules/vestrategy_adapt_range.d.ts +2 -0
  39. package/plugin/modules/vestrategy_adapt_range.mjs +2 -0
  40. package/plugin/modules/vestrategy_h265.d.ts +2 -0
  41. package/plugin/modules/vestrategy_h265.mjs +2 -0
  42. package/plugin/modules/vestrategy_preload.d.ts +2 -0
  43. package/plugin/modules/vestrategy_preload.mjs +2 -0
  44. package/plugin/mp4Encrypt.js +2 -2
  45. package/plugin/vestrategy.js +1 -1
  46. package/plugin/vestrategy_preload.js +1 -1
package/index.d.ts CHANGED
@@ -669,6 +669,11 @@ export interface ISubTitleItem {
669
669
  * @brief 字幕名称
670
670
  */
671
671
  text?: string;
672
+ /**
673
+ * @brief 字幕名称。兼容 xgplayer-subtitles 的 label 字段。
674
+ * @default -
675
+ */
676
+ label?: string | number;
672
677
  /**
673
678
  * @brief 外挂字幕 URL 地址。
674
679
  * @default -
@@ -697,6 +702,20 @@ export interface ISubTitleItem {
697
702
  */
698
703
  list?: IListItem[];
699
704
  }
705
+ export declare type IAutoSubtitleSourceItem = Record<string, any> | string;
706
+ export declare type IAutoSubtitleFormatterResult = string | number | boolean | null | undefined | {
707
+ label?: string | number;
708
+ text?: string | number;
709
+ show?: boolean;
710
+ visible?: boolean;
711
+ /** 排序权重,值越小越靠前。未指定时保持原始顺序。 */
712
+ order?: number;
713
+ /** 是否为默认选中的字幕。 */
714
+ isDefault?: boolean;
715
+ /** 是否为默认选中的字幕,与 `isDefault` 等价。 */
716
+ default?: boolean;
717
+ };
718
+ export declare type IAutoSubtitleItemFormatter = (item: IAutoSubtitleSourceItem, index: number) => IAutoSubtitleFormatterResult;
700
719
  /**
701
720
  * @brief 字幕内容项。
702
721
  * @list Options
@@ -2185,6 +2204,7 @@ export interface ISubtitleInfoList {
2185
2204
  Version: string;
2186
2205
  Vid: string;
2187
2206
  }
2207
+ export declare type ISubtitleInfoListItem = ISubtitleInfoList | string;
2188
2208
  /** {zh}
2189
2209
  * @hidden
2190
2210
  */
@@ -2243,11 +2263,102 @@ export interface IGetPlayInfoRes {
2243
2263
  PlayInfoList: IPlayInfoListItem[];
2244
2264
  PosterUrl: string;
2245
2265
  Status: number;
2246
- SubtitleInfoList: ISubtitleInfoList[];
2266
+ SubtitleInfoList?: ISubtitleInfoListItem[];
2247
2267
  ThumbInfoList: IThumbInfoItem[];
2248
2268
  TotalCount: number;
2249
2269
  Version: number;
2250
2270
  }
2271
+ /**
2272
+ * 短剧环境配置接口
2273
+ */
2274
+ export interface ITTDramaEnv {
2275
+ /** 云服务商,默认从构建时 env.__PLATFORM__ 获取,未注入时默认为 byteplus */
2276
+ channel?: "volcengine" | "byteplus";
2277
+ /**
2278
+ * @brief 应用版本号
2279
+ * @type {string}
2280
+ */
2281
+ appVersion: string;
2282
+ /**
2283
+ * @brief 小程序三方id
2284
+ * @type {string}
2285
+ */
2286
+ clientKey: string;
2287
+ /**
2288
+ * @brief 是否支持获取短剧信息
2289
+ * @type {boolean}
2290
+ */
2291
+ canIUseGetDramaInfo: boolean;
2292
+ /**
2293
+ * @brief Android 是否支持批量获取短剧信息(高版本 app)
2294
+ * @type {boolean}
2295
+ */
2296
+ canAndroidBatchGetDramaInfo?: boolean;
2297
+ /**
2298
+ * @brief 获取短剧信息
2299
+ * @type {function}
2300
+ */
2301
+ getDramaInfo: (callback: (res: IJSBCallbackResult) => void, options: IGetDramaInfoOptions) => void;
2302
+ videoSecurityModule?: any;
2303
+ /**
2304
+ * @brief 日志发送接口
2305
+ * @type {function}
2306
+ */
2307
+ sendLog: (EventName: string, params: Record<string, any>) => void;
2308
+ /**
2309
+ * 低版本 app 下验证 TTOP 签发的 playAuthToken 时使用的密钥
2310
+ * 通过 JSB(如 minis.getSecret)从 Native 获取,用于 HMAC-SHA256 签名校验
2311
+ */
2312
+ getTokenVerifySecret?: () => Promise<string>;
2313
+ }
2314
+ /**
2315
+ * JSB 获取短剧信息请求参数
2316
+ */
2317
+ export interface IGetDramaInfoOptions {
2318
+ clientKey: string;
2319
+ albumId: string;
2320
+ episodeId: string;
2321
+ vid: string;
2322
+ }
2323
+ export interface MinisError {
2324
+ error_code: number;
2325
+ error_msg: string;
2326
+ error_extra?: unknown;
2327
+ }
2328
+ /**
2329
+ * JSB getDramaInfo 返回的客户端耗时信息,单位 ms。
2330
+ */
2331
+ export interface IGetDramaInfoPerfInfo {
2332
+ prepare_cost?: number;
2333
+ request_cost?: number;
2334
+ parse_cost?: number;
2335
+ total_cost?: number;
2336
+ [propName: string]: any;
2337
+ }
2338
+ /**
2339
+ * JSB 获取短剧信息返回结果
2340
+ */
2341
+ export interface IJSBCallbackResult {
2342
+ is_success: number | boolean;
2343
+ error?: MinisError;
2344
+ data?: {
2345
+ status: number;
2346
+ drama_info: {
2347
+ album_id: string;
2348
+ drama_name: string;
2349
+ drama_cover: string;
2350
+ drama_description: string;
2351
+ };
2352
+ episode_info: {
2353
+ episode_id: string;
2354
+ episode_name: string;
2355
+ episode_cover: string;
2356
+ episode_description: string;
2357
+ };
2358
+ video_info: IGetPlayInfoRes | Record<string, any>;
2359
+ perf_info?: IGetDramaInfoPerfInfo;
2360
+ };
2361
+ }
2251
2362
  /** {zh}
2252
2363
  * @list Options
2253
2364
  * @brief 视频编码格式。
@@ -2282,7 +2393,7 @@ export declare const CodecType: {
2282
2393
  */
2283
2394
  readonly UNKNOWN: "unknown";
2284
2395
  };
2285
- export declare type ICodecType = (typeof CodecType)[keyof typeof CodecType];
2396
+ export declare type ICodecType = typeof CodecType[keyof typeof CodecType];
2286
2397
  export declare const ContentType: {
2287
2398
  h265: string;
2288
2399
  h264: string;
@@ -2673,6 +2784,86 @@ export declare type Url = string | Array<{
2673
2784
  type?: string;
2674
2785
  [propName: string]: any;
2675
2786
  }>;
2787
+ /** {zh}
2788
+ * @list Options
2789
+ * @kind property
2790
+ * @brief 获取到媒体信息时的回调参数。
2791
+ */
2792
+ /** {en}
2793
+ * @list Options
2794
+ * @kind property
2795
+ * @brief Callback payload when media information is obtained.
2796
+ */
2797
+ export interface IGetMediaInfoCallbackPayload {
2798
+ /** {zh}
2799
+ * @brief 媒体信息。
2800
+ */
2801
+ /** {en}
2802
+ * @brief Media information.
2803
+ */
2804
+ data: {
2805
+ playList?: Stream[];
2806
+ type?: string;
2807
+ poster?: string;
2808
+ vid?: string;
2809
+ duration?: number;
2810
+ [propName: string]: any;
2811
+ };
2812
+ /** {zh}
2813
+ * @brief 媒体信息是否来自缓存。
2814
+ */
2815
+ /** {en}
2816
+ * @brief Whether the media information comes from cache.
2817
+ */
2818
+ fromCache: boolean;
2819
+ }
2820
+ /** {zh}
2821
+ * @list Options
2822
+ * @kind property
2823
+ * @brief JSB getDramaInfo 客户端耗时回调参数。
2824
+ */
2825
+ /** {en}
2826
+ * @list Options
2827
+ * @kind property
2828
+ * @brief Callback payload for client-side getDramaInfo timing returned by JSB.
2829
+ */
2830
+ export interface IGetDramaInfoPerfCallbackPayload {
2831
+ /** {zh}
2832
+ * @brief JSB 返回的客户端耗时信息,单位 ms。
2833
+ */
2834
+ /** {en}
2835
+ * @brief Client-side timing returned by JSB, in milliseconds.
2836
+ */
2837
+ perfInfo: IGetDramaInfoPerfInfo;
2838
+ /** {zh}
2839
+ * @brief 剧 ID。
2840
+ */
2841
+ albumId?: string;
2842
+ /** {zh}
2843
+ * @brief 剧集 ID。
2844
+ */
2845
+ episodeId?: string;
2846
+ /** {zh}
2847
+ * @brief 视频 ID。
2848
+ */
2849
+ vid?: string;
2850
+ /** {zh}
2851
+ * @brief JSB 是否请求成功。
2852
+ */
2853
+ isSuccess: boolean;
2854
+ /** {zh}
2855
+ * @brief 短剧审核状态。
2856
+ */
2857
+ status?: number;
2858
+ /** {zh}
2859
+ * @brief 是否来自缓存。getDramaInfo 实际请求返回时固定为 false。
2860
+ */
2861
+ fromCache: boolean;
2862
+ /** {zh}
2863
+ * @brief SDK 收到回调时的时间戳。
2864
+ */
2865
+ timestamp: number;
2866
+ }
2676
2867
  /** {zh}
2677
2868
  * @list Options
2678
2869
  * @kind property
@@ -2718,12 +2909,48 @@ export interface IPlayerConfig extends IPlayerOptions {
2718
2909
  * @default -
2719
2910
  */
2720
2911
  vid?: string;
2912
+ /**
2913
+ * @brief 剧id,Minis 短剧播放需要
2914
+ */
2915
+ albumId?: string;
2916
+ /**
2917
+ * @brief 剧集id,Minis 短剧播放需要
2918
+ */
2919
+ episodeId?: string;
2721
2920
  /** {zh}
2722
2921
  * @brief Vid 播放配置项。应用服务端需通过 `vid` 生成临时临时播放 Token,下发给客户端。
2723
2922
  * @type {IPlayAuthTokenConfig}
2724
2923
  * @memberof IPlayerConfig
2725
2924
  */
2726
2925
  getVideoByToken?: IPlayAuthTokenConfig;
2926
+ /** {zh}
2927
+ * @brief 通过 `playAuthToken` 或缓存获取到媒体信息时触发的回调。
2928
+ * @default -
2929
+ */
2930
+ /** {en}
2931
+ * @brief Callback fired when media information is obtained from `playAuthToken` or cache.
2932
+ * @default -
2933
+ */
2934
+ onGetMediaInfo?: (payload: IGetMediaInfoCallbackPayload) => void;
2935
+ /** {zh}
2936
+ * @brief JSB `getDramaInfo` 返回客户端耗时信息时触发的回调。
2937
+ * @default -
2938
+ */
2939
+ /** {en}
2940
+ * @brief Callback fired when JSB `getDramaInfo` returns client-side timing.
2941
+ * @default -
2942
+ */
2943
+ onGetDramaInfoPerf?: (payload: IGetDramaInfoPerfCallbackPayload) => void;
2944
+ /** {zh}
2945
+ * @brief 是否自动使用 `playAuthToken` 或短剧信息返回的字幕列表。
2946
+ * @default false
2947
+ */
2948
+ autoSubtitle?: boolean;
2949
+ /** {zh}
2950
+ * @brief 自动字幕项格式化回调。返回字符串或数字时作为字幕名称;返回 `false` 或 `{ show: false }` 时不展示该项;返回 `{ isDefault: true }` 或 `{ default: true }` 时设为默认字幕。
2951
+ * @default -
2952
+ */
2953
+ formatAutoSubtitleItem?: IAutoSubtitleItemFormatter;
2727
2954
  /** {zh}
2728
2955
  * @brief 视频加密类型
2729
2956
  * @default -
@@ -3261,6 +3488,31 @@ export interface IPlayerConfig extends IPlayerOptions {
3261
3488
  * @default -
3262
3489
  */
3263
3490
  sdkErrorPlugin?: ISdkErrorConfig;
3491
+ /** {zh}
3492
+ * @brief 原生媒体错误(如网络类 code 2/4)自动重试的最大次数,对应 {@link VeErrorOptions.oriErrRetryCount}。
3493
+ * @default 3
3494
+ */
3495
+ oriErrRetryCount?: number;
3496
+ /** {zh}
3497
+ * @brief 上述重试计数的清零周期(毫秒),超时后重试次数重新统计,对应 {@link VeErrorOptions.oriErrRetryCycle}。
3498
+ * @default 10000
3499
+ */
3500
+ oriErrRetryCycle?: number;
3501
+ /** {zh}
3502
+ * @brief 是否在原生媒体错误时自动重试拉流,对应 {@link VeErrorOptions.enableOriErrRetry}。
3503
+ * @default true
3504
+ */
3505
+ enableOriErrRetry?: boolean;
3506
+ /** {zh}
3507
+ * @brief 是否在错误时同步分析网络/流(如 XHR 探测),对应 {@link VeErrorOptions.needSyncAnalyzeError}。
3508
+ * @default true
3509
+ */
3510
+ needSyncAnalyzeError?: boolean;
3511
+ /** {zh}
3512
+ * @brief 错误分析请求超时时间(毫秒),对应 {@link VeErrorOptions.analyzeTimeout}。
3513
+ * @default 3000
3514
+ */
3515
+ analyzeTimeout?: number;
3264
3516
  /** {zh}
3265
3517
  * @brief rtm配置,配置rtm拉流参数
3266
3518
  * @notes 传入rtm流url时才生效
@@ -3972,99 +4224,267 @@ export interface ApiMapConfig {
3972
4224
  playDomain: string;
3973
4225
  backupPlayDomain?: string;
3974
4226
  }
3975
- export type TLogChannel = "cn" | "va" | "sg";
3976
- declare enum PreloadScene {
4227
+ /**
4228
+ * @list Options
4229
+ * @brief 字幕项。
4230
+ * @kind property
4231
+ */
4232
+ /** {en}
4233
+ * @brief 字幕项配置
4234
+ */
4235
+ export interface ISubTitleItem {
3977
4236
  /**
3978
- * 普通场景(手动执行预加载)
4237
+ * @brief 字幕语言。
4238
+ * @default -
3979
4239
  */
3980
- NORMAL = 0,
4240
+ /** {en}
4241
+ * @brief 字幕语言
4242
+ */
4243
+ language?: string | number;
3981
4244
  /**
3982
- * Feed流场景(播放器自动执行预加载)
3983
- * @brief Feed 流场景(播放器自动执行预加载)
4245
+ * @brief 字幕 ID。
4246
+ * @default -
3984
4247
  */
3985
4248
  /** {en}
3986
- * @brief Feed流场景(播放器自动执行预加载)
4249
+ * @brief 字幕id
3987
4250
  */
3988
- FEED = 1
3989
- }
3990
- declare enum StrategyNames {
4251
+ id?: number | string;
3991
4252
  /**
3992
- * h265
3993
- * @brief H.265 策略
4253
+ * @brief 是否为默认选择的字幕。
4254
+ * @default false
3994
4255
  */
3995
- H265 = "h265",
3996
- /**
3997
- * 预加载
3998
- * @brief 预加载策略
4256
+ /** {en}
4257
+ * @brief 是否是默认选择的字幕
3999
4258
  */
4000
- PRELOAD = "preload",
4259
+ isDefault?: boolean;
4001
4260
  /**
4002
- * Range拆分-动态Buffer
4003
- * @brief 动态 Buffer
4261
+ * @brief 字幕名称。
4262
+ * @default -
4004
4263
  */
4005
- ADAPT_RANGE = "adaptRange"
4006
- }
4007
- /** {zh}
4008
- * @hidden
4009
- * h265策略配置
4010
- * @detail Options
4011
- */
4012
- export declare type IH265Config = {
4013
- /**
4014
- * h265策略依赖Module
4264
+ /** {en}
4265
+ * @brief 字幕名称
4015
4266
  */
4016
- Strategy?: any;
4267
+ text?: string;
4017
4268
  /**
4018
- * 是否禁用265策略
4269
+ * @brief 字幕名称。兼容 xgplayer-subtitles 的 label 字段。
4270
+ * @default -
4019
4271
  */
4020
- disabled?: boolean;
4021
- } & VeStrategyH265Config;
4022
- /** {zh}
4023
- * 预加载初始配置
4024
- * @detail Options
4025
- */
4026
- export declare type IPreloadConfig = {
4027
- /**
4028
- * 预加载场景
4029
- * @default 0
4030
- * */
4031
- preloadScene?: PreloadScene;
4272
+ label?: string | number;
4032
4273
  /**
4033
- * 向前预加载视频个数,Feed流场景时生效
4034
- * @default 1
4035
- * @brief 向前预加载视频个数。Feed 流场景时生效。
4274
+ * @brief 外挂字幕 URL 地址。
4275
+ * @default -
4036
4276
  */
4037
4277
  /** {en}
4038
- * @brief 向前预加载视频个数,Feed流场景时生效
4278
+ * @brief 外挂字幕地址
4039
4279
  */
4040
- prevCount?: number;
4280
+ url?: string;
4041
4281
  /**
4042
- * 向后预加载视频个数,Feed流场景生效
4043
- * @default 2
4044
- * @brief 向后预加载视频个数。Feed 流场景生效
4045
- */
4046
- /** {en}
4047
- * @brief 向后预加载视频个数,Feed流场景生效
4282
+ * stringContent
4283
+ * @default
4284
+ * @hidden
4285
+ * @type {string}
4286
+ * @memberof ISubTitleItem
4048
4287
  */
4049
- nextCount?: number;
4288
+ stringContent?: string;
4050
4289
  /**
4051
- * 单个视频预加载时长
4052
- * @default 5
4290
+ * 字幕内容列表,非url形式时使用
4291
+ * @default
4292
+ * @type {Array<Object>}
4293
+ * @memberof ISubTitleItem
4294
+ * @brief 字幕内容列表。非 `url` 形式时使用。
4053
4295
  */
4054
- preloadTime?: number;
4055
- /**
4056
- * 最大视频缓存个数
4057
- * @default 15
4296
+ /** {en}
4297
+ * @brief 字幕内容列表,非url形式时使用
4058
4298
  */
4059
- preloadMaxCacheCount?: number;
4299
+ list?: IListItem[];
4300
+ }
4301
+ /**
4302
+ * @brief 字幕内容项。
4303
+ * @list Options
4304
+ * @kind property
4305
+ * @export
4306
+ * @interface IListItem
4307
+ */
4308
+ /** {en}
4309
+ * @brief 字幕内容项配置
4310
+ */
4311
+ export interface IListItem {
4060
4312
  /**
4061
- * 预加载依赖Module
4062
- * @brief 预加载依赖 Module
4313
+ * 开始时间
4314
+ * @type {number}
4315
+ * @brief 开始时间,单位为秒。
4063
4316
  */
4064
4317
  /** {en}
4065
- * @brief 预加载依赖Module
4318
+ * @brief 开始时间
4066
4319
  */
4067
- Strategy?: any;
4320
+ start: number;
4321
+ /**
4322
+ * 结束时间
4323
+ * @type {number}
4324
+ * @brief 结束时间,单位为秒。
4325
+ */
4326
+ /** {en}
4327
+ * @brief 结束时间
4328
+ */
4329
+ end: number;
4330
+ /**
4331
+ * 字幕数据列表
4332
+ * @type {Array<ITextItem>}
4333
+ * @brief 字幕数据列表。
4334
+ */
4335
+ /** {en}
4336
+ * @brief 字幕数据列表
4337
+ */
4338
+ list: Array<ITextItem>;
4339
+ /**
4340
+ * @default 无
4341
+ * @hidden
4342
+ * @type {any}
4343
+ */
4344
+ [propName: string]: any;
4345
+ }
4346
+ /**
4347
+ * @breif 字幕文案配置
4348
+ * @list Options
4349
+ * @kind property
4350
+ */
4351
+ export interface ITextItem {
4352
+ /**
4353
+ * @default 无
4354
+ * @hidden
4355
+ * @type {any}
4356
+ */
4357
+ [propName: string]: any;
4358
+ /**
4359
+ * 开始时间
4360
+ * @type {number}
4361
+ * @brief 开始时间,单位为秒。
4362
+ */
4363
+ /** {en}
4364
+ * @brief 开始时间
4365
+ */
4366
+ start: number;
4367
+ /**
4368
+ * 结束时间
4369
+ * @type {number}
4370
+ * @brief 结束时间,单位为秒。
4371
+ */
4372
+ /** {en}
4373
+ * @brief 结束时间
4374
+ */
4375
+ end: number;
4376
+ /**
4377
+ * 字幕文案数组
4378
+ * @type {string[]}
4379
+ * @brief 字幕文案数组。
4380
+ */
4381
+ /** {en}
4382
+ * @brief 字幕文案数组
4383
+ */
4384
+ text: string[];
4385
+ /**
4386
+ * 字幕顺序
4387
+ * @type {number}
4388
+ * @brief 字幕顺序。
4389
+ */
4390
+ /** {en}
4391
+ * @brief 字幕顺序
4392
+ */
4393
+ index?: number;
4394
+ }
4395
+ export type TLogChannel = "cn" | "va" | "sg";
4396
+ declare enum PreloadScene {
4397
+ /**
4398
+ * 普通场景(手动执行预加载)
4399
+ */
4400
+ NORMAL = 0,
4401
+ /**
4402
+ * Feed流场景(播放器自动执行预加载)
4403
+ * @brief Feed 流场景(播放器自动执行预加载)
4404
+ */
4405
+ /** {en}
4406
+ * @brief Feed流场景(播放器自动执行预加载)
4407
+ */
4408
+ FEED = 1
4409
+ }
4410
+ declare enum StrategyNames {
4411
+ /**
4412
+ * h265
4413
+ * @brief H.265 策略
4414
+ */
4415
+ H265 = "h265",
4416
+ /**
4417
+ * 预加载
4418
+ * @brief 预加载策略
4419
+ */
4420
+ PRELOAD = "preload",
4421
+ /**
4422
+ * Range拆分-动态Buffer
4423
+ * @brief 动态 Buffer
4424
+ */
4425
+ ADAPT_RANGE = "adaptRange"
4426
+ }
4427
+ /** {zh}
4428
+ * @hidden
4429
+ * h265策略配置
4430
+ * @detail Options
4431
+ */
4432
+ export declare type IH265Config = {
4433
+ /**
4434
+ * h265策略依赖Module
4435
+ */
4436
+ Strategy?: any;
4437
+ /**
4438
+ * 是否禁用265策略
4439
+ */
4440
+ disabled?: boolean;
4441
+ } & VeStrategyH265Config;
4442
+ /** {zh}
4443
+ * 预加载初始配置
4444
+ * @detail Options
4445
+ */
4446
+ export declare type IPreloadConfig = {
4447
+ /**
4448
+ * 预加载场景
4449
+ * @default 0
4450
+ * */
4451
+ preloadScene?: PreloadScene;
4452
+ /**
4453
+ * 向前预加载视频个数,Feed流场景时生效
4454
+ * @default 1
4455
+ * @brief 向前预加载视频个数。Feed 流场景时生效。
4456
+ */
4457
+ /** {en}
4458
+ * @brief 向前预加载视频个数,Feed流场景时生效
4459
+ */
4460
+ prevCount?: number;
4461
+ /**
4462
+ * 向后预加载视频个数,Feed流场景生效
4463
+ * @default 2
4464
+ * @brief 向后预加载视频个数。Feed 流场景生效
4465
+ */
4466
+ /** {en}
4467
+ * @brief 向后预加载视频个数,Feed流场景生效
4468
+ */
4469
+ nextCount?: number;
4470
+ /**
4471
+ * 单个视频预加载时长
4472
+ * @default 5
4473
+ */
4474
+ preloadTime?: number;
4475
+ /**
4476
+ * 最大视频缓存个数
4477
+ * @default 15
4478
+ */
4479
+ preloadMaxCacheCount?: number;
4480
+ /**
4481
+ * 预加载依赖Module
4482
+ * @brief 预加载依赖 Module
4483
+ */
4484
+ /** {en}
4485
+ * @brief 预加载依赖Module
4486
+ */
4487
+ Strategy?: any;
4068
4488
  /**
4069
4489
  * 是否禁用预加载
4070
4490
  */
@@ -4233,7 +4653,7 @@ export declare type IPreloadUpdateConfig = {
4233
4653
  * 预加载视频资源
4234
4654
  * @detail Options
4235
4655
  */
4236
- export declare type IPreloadStream = {
4656
+ export declare type IPreloadResolvedStream = {
4237
4657
  /**
4238
4658
  * 视频唯一ID
4239
4659
  * @brief 视频 ID
@@ -4295,9 +4715,46 @@ export declare type IPreloadStream = {
4295
4715
  */
4296
4716
  size: number;
4297
4717
  };
4718
+ export declare type IPreloadDramaStream = {
4719
+ /**
4720
+ * 视频唯一ID
4721
+ */
4722
+ vid?: string;
4723
+ /**
4724
+ * 短剧剧 ID
4725
+ */
4726
+ albumId: string;
4727
+ /**
4728
+ * 短剧剧集 ID
4729
+ */
4730
+ episodeId: string;
4731
+ /**
4732
+ * 默认清晰度,用于缓存 key 和预加载流选择
4733
+ */
4734
+ defaultDefinition?: string;
4735
+ /**
4736
+ * Vid 播放配置。短剧预加载会复用 playAuthToken 等配置请求短剧信息。
4737
+ */
4738
+ getVideoByToken?: IPlayAuthTokenConfig;
4739
+ };
4740
+ export declare type IPreloadAuthTokenStream = {
4741
+ /**
4742
+ * 视频唯一ID
4743
+ */
4744
+ vid?: string;
4745
+ /**
4746
+ * 默认清晰度,用于选择预加载流
4747
+ */
4748
+ defaultDefinition?: string;
4749
+ /**
4750
+ * Vid 播放配置。预加载会复用 playAuthToken 请求媒体信息。
4751
+ */
4752
+ getVideoByToken: IPlayAuthTokenConfig;
4753
+ };
4754
+ export declare type IPreloadStream = IPreloadResolvedStream | IPreloadDramaStream | IPreloadAuthTokenStream;
4298
4755
  declare class VeStrategyWrapper {
4299
4756
  private tea;
4300
- private static mapStrategyNameToUmdKey;
4757
+ private collector;
4301
4758
  teaId: number;
4302
4759
  teaChannel: TLogChannel;
4303
4760
  preloader: PreloaderManagerOrigin | undefined;
@@ -4331,7 +4788,102 @@ declare class VeStrategyWrapper {
4331
4788
  private initPreloaderConfig;
4332
4789
  }
4333
4790
  declare const _default: VeStrategyWrapper;
4334
- declare enum UmdKeys {
4791
+ /** {zh}
4792
+ * @hidden
4793
+ */
4794
+ export declare type IRes = IGetPlayInfoRes & {
4795
+ Data: IGetPlayInfoRes & {
4796
+ VideoID?: string;
4797
+ };
4798
+ };
4799
+ declare enum VideoFileTypes {
4800
+ VIDEO = "video",
4801
+ EVIDEO = "evideo",
4802
+ DRM_EVIDEO = "drm_evideo"
4803
+ }
4804
+ declare enum AudioFileTypes {
4805
+ AUDIO = "audio",
4806
+ EAUDIO = "eaudio",
4807
+ DRM_AUDIO = "drm_eaudio"
4808
+ }
4809
+ export interface ITokenInfo {
4810
+ Action?: string;
4811
+ Codec?: ICodecType;
4812
+ FileType?: VideoFileTypes | AudioFileTypes;
4813
+ Format?: string;
4814
+ Ssl?: 0 | 1;
4815
+ Version?: string;
4816
+ Vid?: string;
4817
+ "X-Algorithm"?: string;
4818
+ "X-Credential"?: string;
4819
+ "X-Expires"?: number | string;
4820
+ "X-Date"?: string;
4821
+ "X-Signature"?: string;
4822
+ "X-SignedQueries"?: string;
4823
+ DrmType?: string;
4824
+ PlayAuthIds?: string;
4825
+ [propName: string]: string | number;
4826
+ }
4827
+ /** {zh}
4828
+ * @hidden
4829
+ */
4830
+ export interface IDefItem extends Stream {
4831
+ vid: string;
4832
+ lineId?: number;
4833
+ lineName?: string;
4834
+ url: string;
4835
+ streamType: string;
4836
+ backupUrl: string;
4837
+ backUrlList: string[];
4838
+ fileType?: "video" | "audio" | "evideo" | "eaudio";
4839
+ format: string;
4840
+ bitrate?: number;
4841
+ size?: number;
4842
+ kid?: string;
4843
+ vwidth?: number;
4844
+ vheight?: number;
4845
+ }
4846
+ /** {zh}
4847
+ * @hidden
4848
+ */
4849
+ export interface VideoInfoRes {
4850
+ playList: IDefItem[];
4851
+ type?: string;
4852
+ poster: string;
4853
+ vid: string;
4854
+ duration: number;
4855
+ dashOpts: IRes | {
4856
+ Data: IRes;
4857
+ };
4858
+ thumbs: IThumbInfoItem[];
4859
+ barrageMaskUrl: string;
4860
+ enableAdaptive?: boolean;
4861
+ adaptiveBitrateStreamingInfo?: ABRInfo;
4862
+ }
4863
+ export interface ICreatePlayerPerfTiming {
4864
+ name: string;
4865
+ duration: number;
4866
+ }
4867
+ export interface ICreatePlayerPerfReport {
4868
+ totalDuration: number;
4869
+ timings: ICreatePlayerPerfTiming[];
4870
+ timingMap: Record<string, number>;
4871
+ }
4872
+ declare class CreatePlayerPerfCollector {
4873
+ private now;
4874
+ private startAt;
4875
+ private timings;
4876
+ private timingMap;
4877
+ constructor();
4878
+ markDuration(name: string, durationMs: number): void;
4879
+ measure<T>(name: string, fn: () => T): T;
4880
+ measureAsync<T>(name: string, fn: () => Promise<T>): Promise<T>;
4881
+ finish(): ICreatePlayerPerfReport;
4882
+ }
4883
+ export declare type CollectorConstructor = new (name: string) => any;
4884
+ declare function isMSESupport(mime?: string): boolean;
4885
+ /** UMD modules that can be loaded or explicitly pre-registered. */
4886
+ export declare enum UmdKeys {
4335
4887
  HLS = "hls",
4336
4888
  FLV = "flv",
4337
4889
  XGVideo = "XGVideo",
@@ -4348,11 +4900,17 @@ declare enum UmdKeys {
4348
4900
  DashAbralgo = "DashAbralgo",
4349
4901
  Preloader = "preloader"
4350
4902
  }
4903
+ /** Resolved UMD module values keyed by their public UMD key. */
4904
+ export declare type UmdModules = Partial<Record<UmdKeys, unknown>>;
4351
4905
  /**
4352
4906
  * @hidden
4353
- * @breif umdmap 配置
4907
+ * @breif umdmap 的keys
4354
4908
  */
4355
- export declare type UMDMap = Record<UmdKeys, {
4909
+ /**
4910
+ * @hidden
4911
+ * @breif umdmap 单项配置
4912
+ */
4913
+ export interface UMDMapEntry {
4356
4914
  /**
4357
4915
  * umd Module 的名称,即在window下暴露的接口名称
4358
4916
  */
@@ -4369,10 +4927,22 @@ export declare type UMDMap = Record<UmdKeys, {
4369
4927
  * npm包中umd入口文件路径,用于打包上传到cdn目录
4370
4928
  */
4371
4929
  devPath: string;
4372
- }>;
4930
+ }
4931
+ /**
4932
+ * @hidden
4933
+ * @breif umdmap 配置;精简构建可只提供其支持的依赖。
4934
+ */
4935
+ export declare type UMDMap = Partial<Record<UmdKeys, UMDMapEntry>>;
4373
4936
  declare class UMDLoader {
4374
4937
  private static jsLoadMap;
4375
4938
  private static jsLoadPromiseMap;
4939
+ private static registeredModules;
4940
+ /**
4941
+ * 注册业务已打包的 UMD 模块。注册值优先于缓存、window 全局和 script 加载。
4942
+ */
4943
+ static registerModules(modules: UmdModules): void;
4944
+ /** 清除指定插件的加载缓存,使下次 loadPlugins 重新触发加载(用于修复首次加载失败的情况) */
4945
+ clearPluginCache(pluginName: UmdKeys): void;
4376
4946
  umdMap: UMDMap;
4377
4947
  backupUmdUrlMap: Record<string, string>;
4378
4948
  failCallback: (umdName: string, err: any) => any;
@@ -4454,6 +5024,129 @@ export declare class SdkPlugin {
4454
5024
  */
4455
5025
  __destroy(): void;
4456
5026
  }
5027
+ /**
5028
+ * @author bytedance
5029
+ * @version 1.0
5030
+ * @Description
5031
+ * @date 2024/12/16 17:59
5032
+ */
5033
+ export declare const enum LangTextKey {
5034
+ NETWORK = "NETWORK",
5035
+ NETWORK_TIMEOUT = "NETWORK_TIMEOUT",
5036
+ NETWORK_FORBIDDEN = "NETWORK_FORBIDDEN",
5037
+ NETWORK_NOTFOUND = "NETWORK_NOTFOUND",
5038
+ NETWORK_RANGE_NOT_SATISFIABLE = "NETWORK_RANGE_NOT_SATISFIABLE",
5039
+ NETWORK_PROTOCOL = "NETWORK_PROTOCOL",
5040
+ NETWORK_URL_EXPIRE = "NETWORK_URL_EXPIRE",
5041
+ NETWORK_URL_SIGN = "NETWORK_URL_SIGN",
5042
+ NETWORK_ENCRYPT_HLS_ERR = "NETWORK_ENCRYPT_HLS_ERR",
5043
+ MEDIA_ERR = "MEDIA_ERR",
5044
+ MEDIA_ERR_ABORTED = "MEDIA_ERR_ABORTED",
5045
+ MEDIA_ERR_NETWORK = "MEDIA_ERR_NETWORK",
5046
+ MEDIA_ERR_DECODE = "MEDIA_ERR_DECODE",
5047
+ MEDIA_ERR_SRC_NOT_SUPPORTED = "MEDIA_ERR_SRC_NOT_SUPPORTED",
5048
+ MEDIA_ERR_NOT_SUPPORTED = "MEDIA_ERR_NOT_SUPPORTED",
5049
+ MEDIA_ERR_URL_EMPTY = "MEDIA_ERR_URL_EMPTY",
5050
+ MEDIA_ERR_FILE_NOT_SUPPORTED = "MEDIA_ERR_FILE_NOT_SUPPORTED",
5051
+ MEDIA_ERR_PLAY_ERR = "MEDIA_ERR_PLAY_ERR",
5052
+ MEDIA_SOURCE_CANNOT_PLAY_TYPE = "MEDIA_SOURCE_CANNOT_PLAY_TYPE",
5053
+ BUSINESS_DRM_NOT_SUPPORT = "BUSINESS_DRM_NOT_SUPPORT",
5054
+ BUSINESS_DRM_NOT_SUPPORT_UN_RECORD = "BUSINESS_DRM_NOT_SUPPORT_UN_RECORD",
5055
+ BUSINESS_DRM_LACK_MEDIA_KEY = "BUSINESS_DRM_LACK_MEDIA_KEY",
5056
+ BUSINESS_DRM_LACK_KEY_SESSION = "BUSINESS_DRM_LACK_KEY_SESSION",
5057
+ BUSINESS_DRM_GENERATE_REQUEST_FAIL = "BUSINESS_DRM_GENERATE_REQUEST_FAIL",
5058
+ BUSINESS_DRM_LACK_SERVER_CERTIFICATE_PATH = "BUSINESS_DRM_LACK_SERVER_CERTIFICATE_PATH",
5059
+ BUSINESS_DRM_LACK_SERVER_PROCESSSPC_PATH = "BUSINESS_DRM_LACK_SERVER_PROCESSSPC_PATH",
5060
+ BUSINESS_DRM_LICENSE_FAIL = "BUSINESS_DRM_LICENSE_FAIL",
5061
+ BUSINESS_DRM_KEY_ERROR = "BUSINESS_DRM_KEY_ERROR",
5062
+ BUSINESS_DRM_CERT_FAIL = "BUSINESS_DRM_CERT_FAIL",
5063
+ PRIVATE_DRM_KEY_GET_FAILED = "PRIVATE_DRM_KEY_GET_FAILED",
5064
+ PRIVATE_DRM_CRYPTO_NOT_SUPPORT = "PRIVATE_DRM_CRYPTO_NOT_SUPPORT",
5065
+ PRIVATE_DRM_RSA_FAIL = "PRIVATE_DRM_RSA_FAIL",
5066
+ OTHER = "OTHER",
5067
+ VOD_LOG_NOT_CONFIGURED = "VOD_LOG_NOT_CONFIGURED",
5068
+ PLAY_AUTH_TOKEN_EXPIRED = "PLAY_AUTH_TOKEN_EXPIRED",
5069
+ HLS_KEY_TOKEN_EXPIRED = "HLS_KEY_TOKEN_EXPIRED",
5070
+ THIRD_PARTY_DRM_AUTH_TOKEN_EXPIRED = "THIRD_PARTY_DRM_AUTH_TOKEN_EXPIRED",
5071
+ GET_PLAY_INFO_ERR = "GET_PLAY_INFO_ERR",
5072
+ GET_HLS_DECRYPTION_KEY_ERR = "GET_HLS_DECRYPTION_KEY_ERR",
5073
+ LICENSE_VALIDATE_FAIL = "LICENSE_VALIDATE_FAIL",
5074
+ DEFINITION_AUTO = "DEFINITION_AUTO",
5075
+ LICENSE_STATUS_INVALID = "LICENSE_STATUS_INVALID",
5076
+ LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH = "LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH",
5077
+ BASE_LICENSE_NOT_SUPPORT_265 = "BASE_LICENSE_NOT_SUPPORT_265",
5078
+ BASE_LICENSE_NOT_SUPPORT_ABR = "BASE_LICENSE_NOT_SUPPORT_ABR",
5079
+ BASE_LICENSE_NOT_SUPPORT_ADAPT_BUFFER = "BASE_LICENSE_NOT_SUPPORT_ADAPT_BUFFER",
5080
+ BASE_LICENSE_NOT_SUPPORT_PRELOAD = "BASE_LICENSE_NOT_SUPPORT_PRELOAD",
5081
+ EXPIRED_LICENSE_NOT_SUPPORT_265 = "EXPIRED_LICENSE_NOT_SUPPORT_265",
5082
+ EXPIRED_LICENSE_NOT_SUPPORT_ABR = "EXPIRED_LICENSE_NOT_SUPPORT_ABR",
5083
+ EXPIRED_LICENSE_NOT_SUPPORT_ADAPT_BUFFER = "EXPIRED_LICENSE_NOT_SUPPORT_ADAPT_BUFFER",
5084
+ EXPIRED_LICENSE_NOT_SUPPORT_PRELOAD = "EXPIRED_LICENSE_NOT_SUPPORT_PRELOAD",
5085
+ /** Short drama (Minis) errors — codes 93xx */
5086
+ DRAMA_INVALID_PARAM = "DRAMA_INVALID_PARAM",
5087
+ DRAMA_NO_INFO_FOUND = "DRAMA_NO_INFO_FOUND",
5088
+ DRAMA_NOT_SUBMITTED = "DRAMA_NOT_SUBMITTED",
5089
+ DRAMA_UNDER_REVIEW = "DRAMA_UNDER_REVIEW",
5090
+ DRAMA_FAILED_REVIEW = "DRAMA_FAILED_REVIEW",
5091
+ DRAMA_WITHDRAWN_REVIEW = "DRAMA_WITHDRAWN_REVIEW",
5092
+ DRAMA_FAILED_TO_QUERY = "DRAMA_FAILED_TO_QUERY",
5093
+ DRAMA_INVALID_TTOP_TOKEN = "DRAMA_INVALID_TTOP_TOKEN",
5094
+ DRAMA_NOT_ON_SHELF = "DRAMA_NOT_ON_SHELF",
5095
+ DRAMA_FAILED_GET_EPISODE_INFO = "DRAMA_FAILED_GET_EPISODE_INFO"
5096
+ }
5097
+ declare const DRAMA_ERROR_CODE: {
5098
+ /** 9301 - 短剧环境下参数不合法(如使用 url/playList 播放,或缺少 albumId / episodeId) */
5099
+ readonly INVALID_PARAM: {
5100
+ readonly code: 9301;
5101
+ readonly message: "Invalid parameter in short drama environment";
5102
+ readonly textKey: LangTextKey.DRAMA_INVALID_PARAM;
5103
+ };
5104
+ readonly NO_INFO_FOUND: {
5105
+ readonly code: 9302;
5106
+ readonly message: "No information found for this Episode";
5107
+ readonly textKey: LangTextKey.DRAMA_NO_INFO_FOUND;
5108
+ };
5109
+ readonly NOT_SUBMITTED: {
5110
+ readonly code: 9303;
5111
+ readonly message: "Episode not submitted for review";
5112
+ readonly textKey: LangTextKey.DRAMA_NOT_SUBMITTED;
5113
+ };
5114
+ readonly UNDER_REVIEW: {
5115
+ readonly code: 9304;
5116
+ readonly message: "Episode under for review";
5117
+ readonly textKey: LangTextKey.DRAMA_UNDER_REVIEW;
5118
+ };
5119
+ readonly FAILED_REVIEW: {
5120
+ readonly code: 9305;
5121
+ readonly message: "Episode failed review";
5122
+ readonly textKey: LangTextKey.DRAMA_FAILED_REVIEW;
5123
+ };
5124
+ readonly WITHDRAWN_REVIEW: {
5125
+ readonly code: 9306;
5126
+ readonly message: "Episode withdrawn from review";
5127
+ readonly textKey: LangTextKey.DRAMA_WITHDRAWN_REVIEW;
5128
+ };
5129
+ readonly FAILED_TO_QUERY: {
5130
+ readonly code: 9307;
5131
+ readonly message: "Failed to query video playback information";
5132
+ readonly textKey: LangTextKey.DRAMA_FAILED_TO_QUERY;
5133
+ };
5134
+ readonly INVALID_TTOP_TOKEN: {
5135
+ readonly code: 9308;
5136
+ readonly message: "Invalid playAuthToken or failed to verify TTOP token";
5137
+ readonly textKey: LangTextKey.DRAMA_INVALID_TTOP_TOKEN;
5138
+ };
5139
+ readonly NOT_ON_SHELF: {
5140
+ readonly code: 9310;
5141
+ readonly message: "Video is not on shelf";
5142
+ readonly textKey: LangTextKey.DRAMA_NOT_ON_SHELF;
5143
+ };
5144
+ readonly FAILED_GET_EPISODE_INFO: {
5145
+ readonly code: 9399;
5146
+ readonly message: "Failed get episode info";
5147
+ readonly textKey: LangTextKey.DRAMA_FAILED_GET_EPISODE_INFO;
5148
+ };
5149
+ };
4457
5150
  declare class AuthToken extends SdkPlugin {
4458
5151
  static get pluginName(): string;
4459
5152
  isPlayByToken: boolean;
@@ -4475,13 +5168,50 @@ declare class AuthToken extends SdkPlugin {
4475
5168
  codec: ICodecType;
4476
5169
  defaultDefinition: string;
4477
5170
  }>;
5171
+ /**
5172
+ * 短剧 Minis 环境:通过 JSB getDramaInfo 获取媒体信息
5173
+ */
5174
+ getDramaInfoViaJSB(): Promise<VideoInfoRes | undefined>;
5175
+ /**
5176
+ * 将审核状态映射到短剧错误码
5177
+ */
5178
+ mapReviewStatusToErrorCode(status: number): keyof typeof DRAMA_ERROR_CODE;
5179
+ /**
5180
+ * 根据 JSB 返回的 msg 或 status 映射到错误码 key
5181
+ */
5182
+ mapDramaErrorCode(msg: string, status?: number): keyof typeof DRAMA_ERROR_CODE;
5183
+ /**
5184
+ * 将 JSB 返回的 video_info 转换为 VideoInfoRes 格式
5185
+ */
5186
+ transformDramaVideoInfoToRes(videoInfo: any, config: IPlayAuthTokenConfig): VideoInfoRes;
5187
+ callOnGetMediaInfo(mediaInfo: VideoInfoRes | undefined, fromCache: boolean): void;
5188
+ reportGetDramaInfoPerf(res: IJSBCallbackResult | undefined, request: {
5189
+ albumId?: string;
5190
+ episodeId?: string;
5191
+ vid?: string;
5192
+ }): void;
4478
5193
  getVideos(): Promise<any>;
4479
5194
  getPrivateDrmInfo(playList: Stream[], vid: string, streamType: string): Promise<void>;
4480
5195
  getThumbnailConfig(thumbs: IThumbInfoItem[]): void;
4481
5196
  getBarrageMaskUrl(url: string): void;
5197
+ setSubtitleConfig(mediaInfo: VideoInfoRes | undefined): void;
5198
+ getAutoSubtitleList(mediaInfo: VideoInfoRes): ISubTitleItem[];
5199
+ getSubtitleSourceData(mediaInfo: VideoInfoRes): any;
5200
+ getAutoSubtitleItem(item: any, index: number): ISubTitleItem | undefined;
5201
+ getStringAutoSubtitleItem(item: string, index: number): ISubTitleItem;
5202
+ getObjectAutoSubtitleItem(item: any, index: number): ISubTitleItem | undefined;
5203
+ formatAutoSubtitleItem(subtitleItem: ISubTitleItem, rawItem: any, index: number): ISubTitleItem | undefined;
4482
5204
  getDrmConfig(videoInfo: IVideoInfo): void;
5205
+ /**
5206
+ * 是否处于短剧 Minis 环境(通过剧 ID + 剧集 ID 获取视频)
5207
+ */
5208
+ get isMinisDramaMode(): boolean;
4483
5209
  init(): void;
4484
5210
  initConfig(getVideoByToken: IPlayAuthTokenConfig): void;
5211
+ /**
5212
+ * 剧集切换:configs 已由 player 更新 album_id/episode_id,重新拉取媒体信息
5213
+ */
5214
+ updateDramaEpisode(isNewVideo: boolean): Promise<void>;
4485
5215
  /**
4486
5216
  * @description 更新playAuthToken
4487
5217
  * @param {IPlayAuthTokenConfig} getVideoByToken token信息
@@ -4601,9 +5331,7 @@ declare class PlayerData {
4601
5331
  * @brief 私有加密会话id
4602
5332
  */
4603
5333
  encryptSessionId?: string;
4604
- constructor(configs: IPlayerConfig & {
4605
- licensSupportModuleList: string[];
4606
- }, sdk: VePlayer);
5334
+ constructor(configs: IPlayerConfig, sdk: VePlayer);
4607
5335
  /**
4608
5336
  * 初始化播放数据
4609
5337
  * @param configs { IPlayerConfig } 播放器配置
@@ -4730,34 +5458,62 @@ declare class MobilePlayerPanel {
4730
5458
  bind(event: string, eventHandle: any, isBubble?: boolean): void;
4731
5459
  destroy(): void;
4732
5460
  }
4733
- export interface IlicenseContent {
4734
- content: string;
4735
- sign: string;
4736
- mainUrl?: string;
4737
- }
4738
- declare enum LicenseEdition {
4739
- EDITION_STANDARD = "standard_edition",
4740
- EDITION_PREMIUM = "premium_edition",
4741
- EDITION_NONE = "none_edition"
4742
- }
4743
- declare enum LicenseFeature {
4744
- H265 = "h265",
4745
- PRELOAD = "preload",
4746
- ADAPT_RANGE = "adaptRange",
4747
- ABR = "abr"
4748
- }
4749
- declare enum LicenseStatus {
4750
- LICENSE_STATUS_INVALID = 0,
4751
- LICENSE_STATUS_OK = 1,
4752
- LICENSE_STATUS_EXPIRED = 2,
4753
- LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH = 401
4754
- }
4755
- export interface ILicenseConfig {
4756
- license: string | IlicenseContent;
4757
- autoUpload?: boolean;
4758
- expireDiffTime?: number;
4759
- expireCallback?: (expireDiffTime?: number) => void;
5461
+ export declare type MediaInfoCacheType = "memory" | "localStorage";
5462
+ /** {zh}
5463
+ * @brief 媒体信息本地缓存配置。
5464
+ * @list Options
5465
+ * @kind property
5466
+ */
5467
+ /** {en}
5468
+ * @brief Local media info cache config.
5469
+ * @list Options
5470
+ * @kind property
5471
+ */
5472
+ export interface MediaInfoCacheConfig {
5473
+ /** {zh}
5474
+ * @brief 是否启用媒体信息本地缓存。默认关闭。
5475
+ * @default false
5476
+ */
5477
+ /** {en}
5478
+ * @brief Whether to enable local media info cache. Disabled by default.
5479
+ * @default false
5480
+ */
5481
+ enable?: boolean;
5482
+ /** {zh}
5483
+ * @brief 缓存方式。默认使用内存缓存,设置为 localStorage 时写入浏览器本地存储。
5484
+ * @default memory
5485
+ */
5486
+ /** {en}
5487
+ * @brief Cache storage type. Memory cache is used by default. Set to localStorage to write browser local storage.
5488
+ * @default memory
5489
+ */
5490
+ cacheType?: MediaInfoCacheType;
5491
+ /** {zh}
5492
+ * @brief 缓存过期时间,单位毫秒。默认 30 分钟。
5493
+ * @default 1800000
5494
+ */
5495
+ /** {en}
5496
+ * @brief Cache expiration time in milliseconds. Defaults to 30 minutes.
5497
+ * @default 1800000
5498
+ */
5499
+ expireTime?: number;
5500
+ /** {zh}
5501
+ * @brief 最多缓存的媒体信息条数,默认 100。
5502
+ * @default 100
5503
+ */
5504
+ /** {en}
5505
+ * @brief Maximum number of media info entries to cache. Defaults to 100.
5506
+ * @default 100
5507
+ */
5508
+ maxEntries?: number;
4760
5509
  }
5510
+ export declare type NormalizedMediaInfoCacheConfig = {
5511
+ enable: boolean;
5512
+ expireTime: number;
5513
+ cacheType: MediaInfoCacheType;
5514
+ maxEntries: number;
5515
+ };
5516
+ declare function getMediaInfoCacheConfig(): NormalizedMediaInfoCacheConfig;
4761
5517
  /** {zh}
4762
5518
  * @hidden
4763
5519
  */
@@ -4773,10 +5529,6 @@ export declare type PlayerCore = Player & {
4773
5529
  panel?: MobilePlayerPanel;
4774
5530
  emitExpireTimestamp?: number;
4775
5531
  vodLogger?: VodLogger;
4776
- licenseLogInfo?: {
4777
- licenseStatus: LicenseStatus;
4778
- licenseType: LicenseEdition;
4779
- };
4780
5532
  };
4781
5533
  /**
4782
5534
  * @brief 加密混淆信息
@@ -4796,6 +5548,10 @@ export interface EncryptInfo {
4796
5548
  unionInfo: string;
4797
5549
  }
4798
5550
  declare class VePlayer {
5551
+ /**
5552
+ * 注册业务已打包的 UMD 模块,供所有后续创建的播放器共享使用。
5553
+ */
5554
+ static registerModules(modules: UmdModules): void;
4799
5555
  /** {zh}
4800
5556
  * @brief 播放相关配置数据
4801
5557
  * @hidden
@@ -4849,6 +5605,18 @@ declare class VePlayer {
4849
5605
  * @memberof VePlayer
4850
5606
  */
4851
5607
  private _emitter;
5608
+ /**
5609
+ * @hidden
5610
+ * createPlayer 阶段耗时采集器(仅在 createPlayer 执行期间存在)
5611
+ */
5612
+ _createPlayerPerf?: CreatePlayerPerfCollector;
5613
+ /**
5614
+ * @hidden
5615
+ * 最近一次 createPlayer 性能报告
5616
+ */
5617
+ private _lastCreatePlayerPerfReport?;
5618
+ private _isCollectingCreatePlayerPerf;
5619
+ private _getDramaInfoPerfRecords;
4852
5620
  /**
4853
5621
  *
4854
5622
  *
@@ -4891,6 +5659,22 @@ declare class VePlayer {
4891
5659
  * @memberof VePlayer
4892
5660
  */
4893
5661
  delayError: any[];
5662
+ /** {zh}
5663
+ * @brief 设置是否为通过短剧信息或 playAuthToken 获取到的视频地址追加时间戳 query(t=Date.now())。
5664
+ * @param enable true=追加时间戳,false=不追加
5665
+ */
5666
+ /** {en}
5667
+ * @brief Set whether to append a timestamp query (t=Date.now()) to video URLs from drama info or playAuthToken.
5668
+ * @param enable true=append timestamp, false=do not append
5669
+ */
5670
+ static setAppendVideoUrlTimestamp(enable?: boolean): void;
5671
+ /** {zh}
5672
+ * @hidden
5673
+ */
5674
+ /** {en}
5675
+ * @hidden
5676
+ */
5677
+ static getAppendVideoUrlTimestamp(): boolean;
4894
5678
  /**
4895
5679
  * @hidden
4896
5680
  * umd加载器
@@ -4906,7 +5690,6 @@ declare class VePlayer {
4906
5690
  /**
4907
5691
  * @hidden
4908
5692
  */
4909
- static isRTMSupported: typeof import("@byted/xgplayer-rts").RtsPlugin.isSupported;
4910
5693
  /**
4911
5694
  * @hidden
4912
5695
  */
@@ -4916,7 +5699,61 @@ declare class VePlayer {
4916
5699
  * @type {*}
4917
5700
  * @memberof VePlayer
4918
5701
  */
4919
- static sdkVersion: string;
5702
+ static sdkVersion: string;
5703
+ /**
5704
+ * @brief TT短剧环境配置
5705
+ * @type {ITTDramaEnv | null}
5706
+ * @memberof VePlayer
5707
+ */
5708
+ static ttDramaEnv: ITTDramaEnv | null;
5709
+ /** {zh}
5710
+ * @brief 设置TT短剧播放环境
5711
+ * @param env 短剧环境配置,详情见{@link ITTDramaEnv}
5712
+ */
5713
+ static setTTDramaEnv(env: ITTDramaEnv): void;
5714
+ /** {zh}
5715
+ * @brief 设置媒体信息本地缓存配置,默认关闭。开启后,通过短剧信息或 playAuthToken 获取媒体信息时优先使用缓存。
5716
+ * @param config 缓存配置
5717
+ */
5718
+ /** {en}
5719
+ * @brief Set the local media info cache config. It is disabled by default. When enabled, media info from drama info or playAuthToken prefers cached data.
5720
+ * @param config Cache config
5721
+ */
5722
+ static setMediaInfoCacheConfig(config: MediaInfoCacheConfig): void;
5723
+ /** {zh}
5724
+ * @brief 获取当前媒体信息本地缓存配置。
5725
+ * @returns 当前媒体信息缓存配置。
5726
+ */
5727
+ /** {en}
5728
+ * @brief Get current local media info cache config.
5729
+ * @returns Current media info cache config.
5730
+ */
5731
+ static getMediaInfoCacheConfig(): ReturnType<typeof getMediaInfoCacheConfig>;
5732
+ /** {zh}
5733
+ * @brief 清除媒体信息缓存,会同时清除内存缓存和 localStorage 缓存。
5734
+ */
5735
+ /** {en}
5736
+ * @brief Clear media info cache from both memory cache and localStorage cache.
5737
+ */
5738
+ static clearMediaInfoCache(): void;
5739
+ /** {zh}
5740
+ * @brief 设置全局日志开关。开启后会输出 VE_DEBUG.log 级别日志。
5741
+ * @param enable 是否开启详细日志
5742
+ */
5743
+ /** {en}
5744
+ * @brief Set the global log switch. When enabled, VE_DEBUG.log level logs are printed.
5745
+ * @param enable Whether to enable verbose logs
5746
+ */
5747
+ static setDebug(enable: boolean): void;
5748
+ /** {zh}
5749
+ * @brief 设置可选的 Tea Collector 构造函数。传入 undefined 可清除后续实例的注册。
5750
+ * @param Collector Tea Collector 构造函数
5751
+ */
5752
+ /** {en}
5753
+ * @brief Set the optional Tea Collector constructor. Pass undefined to clear it for subsequent instances.
5754
+ * @param Collector Tea Collector constructor
5755
+ */
5756
+ static setCollector(Collector?: CollectorConstructor): void;
4920
5757
  /**
4921
5758
  * @hidden
4922
5759
  */
@@ -4949,7 +5786,7 @@ declare class VePlayer {
4949
5786
  * @brief 添加待预加载视频列表
4950
5787
  * @param list 待预加载视频列表,详情见{@link IPreloadStream[]}。
4951
5788
  */
4952
- static addPreloadList(list: IPreloadStream[]): void;
5789
+ static addPreloadList(list: IPreloadStream[]): Promise<void>;
4953
5790
  /** {zh}
4954
5791
  * @brief 设置待预加载视频列表,替换当前已设置的待预加载列表
4955
5792
  * @param list 待预加载视频列表,详情见{@link IPreloadStream[]}
@@ -4960,14 +5797,6 @@ declare class VePlayer {
4960
5797
  * @param codec
4961
5798
  * @param options
4962
5799
  */
4963
- static isRTMSupportCodec: (codec: RTMCodec, options: {
4964
- targetProfileLevel?: string;
4965
- }) => Promise<boolean>;
4966
- static setLicenseConfig(config: ILicenseConfig): Promise<void>;
4967
- static checkLicense(): Promise<LicenseEdition>;
4968
- static checkModuleList(): Promise<string[]>;
4969
- static checkLicenseStatus(): Promise<LicenseStatus>;
4970
- static checkLicenseModuleAuth(module: string, featureName: LicenseFeature): Promise<boolean>;
4971
5800
  /**
4972
5801
  * @breif 生成加密混淆的数据信息
4973
5802
  * @param unionId 用户唯一id
@@ -4994,6 +5823,8 @@ declare class VePlayer {
4994
5823
  * @param configs 播放器实例化配置。
4995
5824
  */
4996
5825
  constructor(configs: IPlayerConfig);
5826
+ /** @hidden */
5827
+ assertLiteConfig(config?: Partial<IPlayerConfig>): void;
4997
5828
  /**
4998
5829
  *
4999
5830
  * @hidden
@@ -5115,7 +5946,6 @@ declare class VePlayer {
5115
5946
  * @hidden
5116
5947
  */
5117
5948
  createPlayer: () => Promise<PlayerCore>;
5118
- private checkLicenseCallback;
5119
5949
  /** {zh}
5120
5950
  * @hidden
5121
5951
  * @brief 设置合并开发者的插件配置,如果开发者从初始化的configs里传了插件配置,则只用开发者的配置,并补齐其他参数
@@ -5181,6 +6011,28 @@ declare class VePlayer {
5181
6011
  * @memberof VePlayer
5182
6012
  */
5183
6013
  beforePlayerCreate(): Promise<void>;
6014
+ /** {zh}
6015
+ * @hidden
6016
+ * @brief 获取最近一次 createPlayer 的性能报告。
6017
+ */
6018
+ /** {en}
6019
+ * @hidden
6020
+ * @brief Get the perf report of the latest createPlayer.
6021
+ */
6022
+ getCreatePlayerPerfReport(): ICreatePlayerPerfReport;
6023
+ /**
6024
+ * @brief 记录一次 JSB getDramaInfo 返回的客户端耗时信息。
6025
+ */
6026
+ recordGetDramaInfoPerf(payload: IGetDramaInfoPerfCallbackPayload): void;
6027
+ /**
6028
+ * @brief 获取当前播放器实例记录到的 getDramaInfo 客户端耗时列表。
6029
+ */
6030
+ getDramaInfoPerfRecords(): IGetDramaInfoPerfCallbackPayload[];
6031
+ /**
6032
+ * @brief 获取最近一次 getDramaInfo 客户端耗时。
6033
+ */
6034
+ getLastDramaInfoPerf(): IGetDramaInfoPerfCallbackPayload | undefined;
6035
+ private _markGetDramaInfoClientPerf;
5184
6036
  private prepareStrategies;
5185
6037
  /**
5186
6038
  * @hidden
@@ -5227,6 +6079,7 @@ declare class VePlayer {
5227
6079
  * @memberof VePlayer
5228
6080
  */
5229
6081
  private _bindPlayerEvents;
6082
+ private _onMp4PreloadInfo;
5230
6083
  private _proxyError;
5231
6084
  private _onError;
5232
6085
  /** {zh}
@@ -5335,17 +6188,45 @@ declare class VePlayer {
5335
6188
  * @hidden
5336
6189
  */
5337
6190
  next(config: IPlayerConfig, isNewVideo?: boolean): Promise<void>;
6191
+ /** {zh}
6192
+ * @brief 当前播放器命中预加载的情况
6193
+ * @type {{
6194
+ * hit: number, // 0-未命中 1-命中
6195
+ * duration: 0, // 预加载时长
6196
+ * length: 0 // 预加载数据长度
6197
+ * }}
6198
+ */
6199
+ /** {en}
6200
+ * @brief Whether the current playback hit preloaded data.
6201
+ * @type {{
6202
+ * hit: number, // 0-miss 1-hit
6203
+ * duration: number, // preloaded duration
6204
+ * length: number // preloaded data length in bytes
6205
+ * }}
6206
+ */
6207
+ get preLoadData(): {
6208
+ hit: number;
6209
+ duration?: number;
6210
+ length?: number;
6211
+ };
5338
6212
  /** {zh}
5339
6213
  * @brief 播放下一视频。
5340
6214
  * @return{Promise<any>}
5341
6215
  * @memberof VePlayer
5342
6216
  * @notes - 成功更换视频源后,默认是暂停状态。如果设置了自动播放,则会自动播放。
5343
6217
  * - 此接口不支持切换火山引擎私有加密视频。
5344
- * @param config 播放器实例化配置。此接口仅支持 `IPlayerConfig` 中的 `url`、`playList`、`poster`、`getVideoByToken` 字段。。
6218
+ * @param config 播放器实例化配置
5345
6219
  * @param isNewVideo 是否为新视频。为 `false` 时,更换后,会从更换前的时间点继续播放。
5346
6220
  */
5347
6221
  playNext(config: IPlayerConfig, isNewVideo?: boolean): Promise<any>;
6222
+ private updatePlayNextSubtitleConfig;
5348
6223
  private _playNext;
6224
+ /** 从 playerData.configs 取出短剧 id,供 XGPlayer setConfig / playNext 与切换后 configs 一致 */
6225
+ private _getDramaConfigPatchForPlayer;
6226
+ private _buildDramaInvalidParamError;
6227
+ private _getDramaAlbumIdFromConfig;
6228
+ private _getDramaEpisodeIdFromConfig;
6229
+ private switchDramaEpisode;
5349
6230
  /** {zh}
5350
6231
  * @brief 销毁xgplayer实例
5351
6232
  *
@@ -5546,6 +6427,32 @@ declare class VePlayer {
5546
6427
  * @param pluginName 插件名。
5547
6428
  */
5548
6429
  getPlugin(pluginName: string): null | BasePlugin;
6430
+ /** {zh}
6431
+ * @brief 获取字幕列表。需配置 `Subtitle` 插件后调用。
6432
+ * @return 当前字幕列表,每项包含 `id`、`language`、`text`(显示名称)等字段。列表为空时返回空数组。
6433
+ * @memberof VePlayer
6434
+ */
6435
+ getSubtitleList(): ISubTitleItem[];
6436
+ /** {zh}
6437
+ * @brief 切换字幕。需配置 `Subtitle` 插件后调用。
6438
+ * @param subtitle 目标字幕的 id 或 language,任意一个非空即可定位字幕项。
6439
+ * @return 切换成功时 resolve,失败(未找到、切换被中止)时 reject。
6440
+ * @memberof VePlayer
6441
+ */
6442
+ switchSubtitle(subtitle: {
6443
+ id?: string | number;
6444
+ language?: string | number;
6445
+ }): Promise<void>;
6446
+ /** {zh}
6447
+ * @brief 开启字幕展示。恢复上次选中的字幕项;若从未选中过则默认选第一项。需配置 `Subtitle` 插件后调用。
6448
+ * @memberof VePlayer
6449
+ */
6450
+ showSubtitle(): void;
6451
+ /** {zh}
6452
+ * @brief 关闭字幕展示。字幕数据保留,可通过 `showSubtitle` 重新开启。需配置 `Subtitle` 插件后调用。
6453
+ * @memberof VePlayer
6454
+ */
6455
+ hideSubtitle(): void;
5549
6456
  /** {zh}
5550
6457
  * @memberof VePlayer
5551
6458
  * @brief 销毁当前播放器实例。
@@ -5964,92 +6871,54 @@ export declare class MirrorPlugin extends Plugin {
5964
6871
  destroy(): void;
5965
6872
  render(): string;
5966
6873
  }
5967
- export declare type InfoItem = {
5968
- key: string;
5969
- label: string;
5970
- labelTextKey?: string;
5971
- value?: any;
5972
- render?: (key: any) => string;
5973
- type?: string;
5974
- dom?: Element;
5975
- };
5976
- /**
5977
- * 直播信息面板
5978
- */
5979
- export declare class LiveInfoPanel extends Plugin {
5980
- private _pollTimer;
5981
- private _infoItems;
5982
- static get pluginName(): string;
5983
- static get defaultConfig(): {
5984
- visible: boolean;
5985
- showH265Info: boolean;
5986
- };
5987
- get streamType(): any;
5988
- afterCreate(): void;
5989
- registerLanguageTexts(): {
5990
- DECODEFPS: {
5991
- en: string;
5992
- zh: string;
5993
- };
5994
- DECODECOST: {
5995
- en: string;
5996
- zh: string;
5997
- };
5998
- FORMAT: {
5999
- en: string;
6000
- zh: string;
6001
- };
6002
- FPS: {
6003
- en: string;
6004
- zh: string;
6005
- };
6006
- BITRATE: {
6007
- en: string;
6008
- zh: string;
6009
- };
6010
- GOP: {
6011
- en: string;
6012
- zh: string;
6013
- };
6014
- RESOLUTION: {
6015
- en: string;
6016
- zh: string;
6017
- };
6018
- ENCODETYPE: {
6019
- en: string;
6020
- zh: string;
6021
- };
6022
- BUFFEREND: {
6023
- en: string;
6024
- zh: string;
6025
- };
6026
- CURRENTTIME: {
6027
- en: string;
6028
- zh: string;
6029
- };
6030
- };
6031
- _getDefaultInfo(data: any): Record<string, InfoItem>;
6032
- _init(): void;
6033
- _getStats(): any;
6034
- _getInfoListData(): Record<string, InfoItem>;
6035
- _initDom(infoItems: any): any;
6036
- _updateTitle(rowDom: Element, item: InfoItem): void;
6037
- _updateDom(rowdom: Element, newItem: InfoItem): void;
6038
- _renderLabel(item: InfoItem): any;
6039
- _renderValue(item: InfoItem): any;
6040
- _handleDataChange(): void;
6041
- _tick(): void;
6042
- _poll(): void;
6043
- destroy(): void;
6044
- _handleError(): void;
6045
- _handleLoadedData(): void;
6046
- _open(): void;
6047
- _close(): void;
6048
- open(): void;
6049
- close(): void;
6050
- render(): string;
6051
- }
6052
6874
  export declare const Events: {
6875
+ /** {zh}
6876
+ * @brief 自动播放成功。
6877
+ */
6878
+ AUTOPLAY_SUCCESS: string;
6879
+ /** {zh}
6880
+ * @brief 自动播放失败。
6881
+ */
6882
+ AUTOPLAY_FAILED: string;
6883
+ /** {zh}
6884
+ * @brief 右键菜单事件。事件 `data` 中包含具体信息。
6885
+ */
6886
+ MENU_LOG: string;
6887
+ /** {zh}
6888
+ * @brief 点击了右键菜单的反馈按钮。
6889
+ */
6890
+ MENU_REPORT: string;
6891
+ /** {zh}
6892
+ * @brief 播放列表更新。
6893
+ */
6894
+ PLAY_LIST_CHANGE: string;
6895
+ /** {zh}
6896
+ * @brief 播放列表播放项变更。
6897
+ */
6898
+ PLAY_LIST_ITEM_CHANGE: string;
6899
+ /** {zh}
6900
+ * @brief `playNext` 开始。
6901
+ */
6902
+ PLAY_NEXT_START: string;
6903
+ /** {zh}
6904
+ * @brief `playNext` 结束。
6905
+ */
6906
+ PLAY_NEXT_END: string;
6907
+ /** {zh}
6908
+ * @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
6909
+ */
6910
+ ABR_AUTO_DESC_CHANGE: string;
6911
+ /** {zh}
6912
+ * @brief mp4 加密插件命中预加载数据时触发。data 为预加载缓存对象,含 `byteLength`、`duration`、`mediaSegList` 等字段。
6913
+ */
6914
+ /** {en}
6915
+ * @brief Fired when the mp4 encrypt plugin finds a preload cache hit. The event data is the preload cache object, including fields such as `byteLength`, `duration`, and `mediaSegList`.
6916
+ */
6917
+ PRELOAD_INFO: string;
6918
+ TIME_SCALE_CHANGE?: string;
6919
+ MUSIC_MODE_CHANGE?: string;
6920
+ MUSIC_CHANGE?: string;
6921
+ MUSIC_LIST_CHANGE?: string;
6053
6922
  /** {zh}
6054
6923
  * @brief 弹幕配置发生变化。
6055
6924
  */
@@ -6138,58 +7007,6 @@ export declare const Events: {
6138
7007
  * @brief 镜像开启。
6139
7008
  */
6140
7009
  MIRROR_CHANGE: string;
6141
- /** {zh}
6142
- * @brief 音乐播放器快进或快退。
6143
- */
6144
- TIME_SCALE_CHANGE: string;
6145
- /** {zh}
6146
- * @brief 音乐播放模式切换。
6147
- */
6148
- MUSIC_MODE_CHANGE: string;
6149
- /** {zh}
6150
- * @brief 音乐播放模式下切换音乐。
6151
- */
6152
- MUSIC_CHANGE: string;
6153
- /** {zh}
6154
- * @brief 音乐播放列表发生变化。
6155
- */
6156
- MUSIC_LIST_CHANGE: string;
6157
- /** {zh}
6158
- * @brief 自动播放成功。
6159
- */
6160
- AUTOPLAY_SUCCESS: string;
6161
- /** {zh}
6162
- * @brief 自动播放失败。
6163
- */
6164
- AUTOPLAY_FAILED: string;
6165
- /** {zh}
6166
- * @brief 右键菜单事件。事件 `data` 中包含具体信息。
6167
- */
6168
- MENU_LOG: string;
6169
- /** {zh}
6170
- * @brief 点击了右键菜单的反馈按钮。
6171
- */
6172
- MENU_REPORT: string;
6173
- /** {zh}
6174
- * @brief 播放列表更新。
6175
- */
6176
- PLAY_LIST_CHANGE: string;
6177
- /** {zh}
6178
- * @brief 播放列表播放项变更。
6179
- */
6180
- PLAY_LIST_ITEM_CHANGE: string;
6181
- /** {zh}
6182
- * @brief `playNext` 开始。
6183
- */
6184
- PLAY_NEXT_START: string;
6185
- /** {zh}
6186
- * @brief `playNext` 结束。
6187
- */
6188
- PLAY_NEXT_END: string;
6189
- /** {zh}
6190
- * @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
6191
- */
6192
- ABR_AUTO_DESC_CHANGE: string;
6193
7010
  /** {zh}
6194
7011
  * @brief 播放器实例创建完成时触发。
6195
7012
  */
@@ -6340,10 +7157,21 @@ export declare const Events: {
6340
7157
  * @brief Autoplay fails to start.
6341
7158
  */
6342
7159
  AUTOPLAY_PREVENTED: string;
7160
+ /** {zh}
7161
+ * @brief 播放器准备创建。
7162
+ */
7163
+ READY_CREATE_PLAYER: string;
6343
7164
  /** {zh}
6344
7165
  * @brief 播放器完成创建。
6345
7166
  */
6346
7167
  PLAYER_CREATED_FINISH: string;
7168
+ /** {zh}
7169
+ * @brief createPlayer 性能报告。与 `PLAYER_CREATED_FINISH` 几乎同时触发(略早)。
7170
+ */
7171
+ /** {en}
7172
+ * @brief createPlayer performance report. Fired almost at the same time as `PLAYER_CREATED_FINISH` (slightly earlier).
7173
+ */
7174
+ CREATE_PLAYER_PERF: string;
6347
7175
  /** {zh}
6348
7176
  * @brief 播放器重建。
6349
7177
  */
@@ -6663,10 +7491,21 @@ export declare const Event: {
6663
7491
  * @brief Autoplay fails to start.
6664
7492
  */
6665
7493
  AUTOPLAY_PREVENTED: string;
7494
+ /** {zh}
7495
+ * @brief 播放器准备创建。
7496
+ */
7497
+ READY_CREATE_PLAYER: string;
6666
7498
  /** {zh}
6667
7499
  * @brief 播放器完成创建。
6668
7500
  */
6669
7501
  PLAYER_CREATED_FINISH: string;
7502
+ /** {zh}
7503
+ * @brief createPlayer 性能报告。与 `PLAYER_CREATED_FINISH` 几乎同时触发(略早)。
7504
+ */
7505
+ /** {en}
7506
+ * @brief createPlayer performance report. Fired almost at the same time as `PLAYER_CREATED_FINISH` (slightly earlier).
7507
+ */
7508
+ CREATE_PLAYER_PERF: string;
6670
7509
  /** {zh}
6671
7510
  * @brief 播放器重建。
6672
7511
  */
@@ -6721,6 +7560,53 @@ export declare const Event: {
6721
7560
  LICENSE_STATUS_WARNING: string;
6722
7561
  };
6723
7562
  PluginEvents: {
7563
+ /** {zh}
7564
+ * @brief 自动播放成功。
7565
+ */
7566
+ AUTOPLAY_SUCCESS: string;
7567
+ /** {zh}
7568
+ * @brief 自动播放失败。
7569
+ */
7570
+ AUTOPLAY_FAILED: string;
7571
+ /** {zh}
7572
+ * @brief 右键菜单事件。事件 `data` 中包含具体信息。
7573
+ */
7574
+ MENU_LOG: string;
7575
+ /** {zh}
7576
+ * @brief 点击了右键菜单的反馈按钮。
7577
+ */
7578
+ MENU_REPORT: string;
7579
+ /** {zh}
7580
+ * @brief 播放列表更新。
7581
+ */
7582
+ PLAY_LIST_CHANGE: string;
7583
+ /** {zh}
7584
+ * @brief 播放列表播放项变更。
7585
+ */
7586
+ PLAY_LIST_ITEM_CHANGE: string;
7587
+ /** {zh}
7588
+ * @brief `playNext` 开始。
7589
+ */
7590
+ PLAY_NEXT_START: string;
7591
+ /** {zh}
7592
+ * @brief `playNext` 结束。
7593
+ */
7594
+ PLAY_NEXT_END: string;
7595
+ /** {zh}
7596
+ * @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
7597
+ */
7598
+ ABR_AUTO_DESC_CHANGE: string;
7599
+ /** {zh}
7600
+ * @brief mp4 加密插件命中预加载数据时触发。data 为预加载缓存对象,含 `byteLength`、`duration`、`mediaSegList` 等字段。
7601
+ */
7602
+ /** {en}
7603
+ * @brief Fired when the mp4 encrypt plugin finds a preload cache hit. The event data is the preload cache object, including fields such as `byteLength`, `duration`, and `mediaSegList`.
7604
+ */
7605
+ PRELOAD_INFO: string;
7606
+ TIME_SCALE_CHANGE?: string;
7607
+ MUSIC_MODE_CHANGE?: string;
7608
+ MUSIC_CHANGE?: string;
7609
+ MUSIC_LIST_CHANGE?: string;
6724
7610
  /** {zh}
6725
7611
  * @brief 弹幕配置发生变化。
6726
7612
  */
@@ -6809,64 +7695,11 @@ export declare const Event: {
6809
7695
  * @brief 镜像开启。
6810
7696
  */
6811
7697
  MIRROR_CHANGE: string;
6812
- /** {zh}
6813
- * @brief 音乐播放器快进或快退。
6814
- */
6815
- TIME_SCALE_CHANGE: string;
6816
- /** {zh}
6817
- * @brief 音乐播放模式切换。
6818
- */
6819
- MUSIC_MODE_CHANGE: string;
6820
- /** {zh}
6821
- * @brief 音乐播放模式下切换音乐。
6822
- */
6823
- MUSIC_CHANGE: string;
6824
- /** {zh}
6825
- * @brief 音乐播放列表发生变化。
6826
- */
6827
- MUSIC_LIST_CHANGE: string;
6828
- /** {zh}
6829
- * @brief 自动播放成功。
6830
- */
6831
- AUTOPLAY_SUCCESS: string;
6832
- /** {zh}
6833
- * @brief 自动播放失败。
6834
- */
6835
- AUTOPLAY_FAILED: string;
6836
- /** {zh}
6837
- * @brief 右键菜单事件。事件 `data` 中包含具体信息。
6838
- */
6839
- MENU_LOG: string;
6840
- /** {zh}
6841
- * @brief 点击了右键菜单的反馈按钮。
6842
- */
6843
- MENU_REPORT: string;
6844
- /** {zh}
6845
- * @brief 播放列表更新。
6846
- */
6847
- PLAY_LIST_CHANGE: string;
6848
- /** {zh}
6849
- * @brief 播放列表播放项变更。
6850
- */
6851
- PLAY_LIST_ITEM_CHANGE: string;
6852
- /** {zh}
6853
- * @brief `playNext` 开始。
6854
- */
6855
- PLAY_NEXT_START: string;
6856
- /** {zh}
6857
- * @brief `playNext` 结束。
6858
- */
6859
- PLAY_NEXT_END: string;
6860
- /** {zh}
6861
- * @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
6862
- */
6863
- ABR_AUTO_DESC_CHANGE: string;
6864
7698
  };
6865
7699
  };
6866
7700
  export * from "xgplayer";
6867
7701
 
6868
7702
  export {
6869
- LiveSubTitlesPlugin as LiveSubtitlesPlugin,
6870
7703
  MusicPreset as Music,
6871
7704
  VePlayer as default,
6872
7705
  };