@byteplus/veplayer 1.18.0-rc.5 → 1.18.0-rc.7

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 (47) hide show
  1. package/index.d.ts +1177 -371
  2. package/index.min.css +1 -1
  3. package/index.min.js +2 -2
  4. package/lite.cjs +2 -0
  5. package/lite.cjs.css +1 -0
  6. package/lite.d.ts +688 -0
  7. package/lite.esm.css +1 -0
  8. package/lite.esm.mjs +2 -0
  9. package/lite.min.css +1 -0
  10. package/lite.min.js +2 -0
  11. package/package.json +25 -1
  12. package/plugin/hlsjs.js +1 -0
  13. package/plugin/modules/DashAbralgo.d.ts +2 -0
  14. package/plugin/modules/DashAbralgo.mjs +2 -0
  15. package/plugin/modules/XGVideo.d.ts +2 -0
  16. package/plugin/modules/XGVideo.mjs +2 -0
  17. package/plugin/modules/danmuMask.d.ts +2 -0
  18. package/plugin/modules/danmuMask.mjs +2 -0
  19. package/plugin/modules/danmujs.d.ts +2 -0
  20. package/plugin/modules/danmujs.mjs +3 -0
  21. package/plugin/modules/dash.d.ts +2 -0
  22. package/plugin/modules/dash.mjs +2 -0
  23. package/plugin/modules/flv.d.ts +2 -0
  24. package/plugin/modules/flv.mjs +2 -0
  25. package/plugin/modules/hls.d.ts +2 -0
  26. package/plugin/modules/hls.mjs +2 -0
  27. package/plugin/modules/hlsEncrypt.d.ts +2 -0
  28. package/plugin/modules/hlsEncrypt.mjs +2 -0
  29. package/plugin/modules/hlsjs.d.ts +2 -0
  30. package/plugin/modules/hlsjs.mjs +2 -0
  31. package/plugin/modules/hlsjsPro.d.ts +2 -0
  32. package/plugin/modules/hlsjsPro.mjs +2 -0
  33. package/plugin/modules/mp4Encrypt.d.ts +2 -0
  34. package/plugin/modules/mp4Encrypt.mjs +2 -0
  35. package/plugin/modules/preloader.d.ts +2 -0
  36. package/plugin/modules/preloader.mjs +2 -0
  37. package/plugin/modules/streamprobe.d.ts +2 -0
  38. package/plugin/modules/streamprobe.mjs +2 -0
  39. package/plugin/modules/vestrategy.d.ts +2 -0
  40. package/plugin/modules/vestrategy.mjs +2 -0
  41. package/plugin/modules/vestrategy_adapt_range.d.ts +2 -0
  42. package/plugin/modules/vestrategy_adapt_range.mjs +2 -0
  43. package/plugin/modules/vestrategy_h265.d.ts +2 -0
  44. package/plugin/modules/vestrategy_h265.mjs +2 -0
  45. package/plugin/modules/vestrategy_preload.d.ts +2 -0
  46. package/plugin/modules/vestrategy_preload.mjs +2 -0
  47. package/plugin/vestrategy.js +1 -1
package/index.d.ts CHANGED
@@ -805,6 +805,15 @@ export interface ISubTitleItem {
805
805
  * @default -
806
806
  */
807
807
  text?: string;
808
+ /** {zh}
809
+ * @brief 字幕名称。兼容 xgplayer-subtitles 的 label 字段。
810
+ * @default -
811
+ */
812
+ /** {en}
813
+ * @brief 字幕名称。兼容 xgplayer-subtitles 的 label 字段。
814
+ * @default -
815
+ */
816
+ label?: string | number;
808
817
  /** {zh}
809
818
  * @brief 外挂字幕 URL 地址。
810
819
  * @default -
@@ -834,6 +843,20 @@ export interface ISubTitleItem {
834
843
  */
835
844
  list?: IListItem[];
836
845
  }
846
+ export declare type IAutoSubtitleSourceItem = Record<string, any> | string;
847
+ export declare type IAutoSubtitleFormatterResult = string | number | boolean | null | undefined | {
848
+ label?: string | number;
849
+ text?: string | number;
850
+ show?: boolean;
851
+ visible?: boolean;
852
+ /** 排序权重,值越小越靠前。未指定时保持原始顺序。 */
853
+ order?: number;
854
+ /** 是否为默认选中的字幕。 */
855
+ isDefault?: boolean;
856
+ /** 是否为默认选中的字幕,与 `isDefault` 等价。 */
857
+ default?: boolean;
858
+ };
859
+ export declare type IAutoSubtitleItemFormatter = (item: IAutoSubtitleSourceItem, index: number) => IAutoSubtitleFormatterResult;
837
860
  /** {zh}
838
861
  * @brief 字幕内容项。
839
862
  * @list Options
@@ -3052,6 +3075,7 @@ export interface ISubtitleInfoList {
3052
3075
  Version: string;
3053
3076
  Vid: string;
3054
3077
  }
3078
+ export declare type ISubtitleInfoListItem = ISubtitleInfoList | string;
3055
3079
  /** {zh}
3056
3080
  * @hidden
3057
3081
  */
@@ -3126,11 +3150,118 @@ export interface IGetPlayInfoRes {
3126
3150
  PlayInfoList: IPlayInfoListItem[];
3127
3151
  PosterUrl: string;
3128
3152
  Status: number;
3129
- SubtitleInfoList: ISubtitleInfoList[];
3153
+ SubtitleInfoList?: ISubtitleInfoListItem[];
3130
3154
  ThumbInfoList: IThumbInfoItem[];
3131
3155
  TotalCount: number;
3132
3156
  Version: number;
3133
3157
  }
3158
+ /**
3159
+ * 短剧环境配置接口
3160
+ */
3161
+ export interface ITTDramaEnv {
3162
+ /** 云服务商,默认从构建时 env.__PLATFORM__ 获取,未注入时默认为 byteplus */
3163
+ channel?: "volcengine" | "byteplus";
3164
+ /**
3165
+ * @brief 应用版本号
3166
+ * @type {string}
3167
+ */
3168
+ appVersion: string;
3169
+ /**
3170
+ * @brief 小程序三方id
3171
+ * @type {string}
3172
+ */
3173
+ clientKey: string;
3174
+ /**
3175
+ * @brief 是否支持获取短剧信息
3176
+ * @type {boolean}
3177
+ */
3178
+ canIUseGetDramaInfo: boolean;
3179
+ /** 是否支持在 getDramaInfo 中透传 transcodeParam */
3180
+ canIUseGetDramaInfoTranscodeParam?: boolean;
3181
+ /**
3182
+ * @brief Android 是否支持批量获取短剧信息(高版本 app)
3183
+ * @type {boolean}
3184
+ */
3185
+ canAndroidBatchGetDramaInfo?: boolean;
3186
+ /**
3187
+ * @brief 获取短剧信息
3188
+ * @type {function}
3189
+ */
3190
+ getDramaInfo: (callback: (res: IJSBCallbackResult) => void, options: IGetDramaInfoOptions) => void;
3191
+ videoSecurityModule?: any;
3192
+ /**
3193
+ * @brief 日志发送接口
3194
+ * @type {function}
3195
+ */
3196
+ sendLog: (EventName: string, params: Record<string, any>) => void;
3197
+ /**
3198
+ * 低版本 app 下验证 TTOP 签发的 playAuthToken 时使用的密钥
3199
+ * 通过 JSB(如 minis.getSecret)从 Native 获取,用于 HMAC-SHA256 签名校验
3200
+ */
3201
+ getTokenVerifySecret?: () => Promise<string>;
3202
+ }
3203
+ /**
3204
+ * JSB 获取短剧信息请求参数
3205
+ */
3206
+ export interface IGetDramaInfoOptions {
3207
+ clientKey: string;
3208
+ albumId: string;
3209
+ episodeId: string;
3210
+ vid: string;
3211
+ transcodeParam?: IGetDramaInfoTranscodeParam;
3212
+ }
3213
+ /** JSB/TTOP 使用的 snake_case 转码参数。 */
3214
+ export interface IGetDramaInfoTranscodeParam {
3215
+ format?: string;
3216
+ codec?: string;
3217
+ definition?: string;
3218
+ file_type?: string;
3219
+ need_thumbs?: string;
3220
+ need_barrage_mask?: string;
3221
+ union_info?: string;
3222
+ quality?: string;
3223
+ drm_kek?: string;
3224
+ js_player?: string;
3225
+ }
3226
+ export interface MinisError {
3227
+ error_code: number;
3228
+ error_msg: string;
3229
+ error_extra?: unknown;
3230
+ }
3231
+ /**
3232
+ * JSB getDramaInfo 返回的客户端耗时信息,单位 ms。
3233
+ */
3234
+ export interface IGetDramaInfoPerfInfo {
3235
+ prepare_cost?: number;
3236
+ request_cost?: number;
3237
+ parse_cost?: number;
3238
+ total_cost?: number;
3239
+ [propName: string]: any;
3240
+ }
3241
+ /**
3242
+ * JSB 获取短剧信息返回结果
3243
+ */
3244
+ export interface IJSBCallbackResult {
3245
+ is_success: number | boolean;
3246
+ error?: MinisError;
3247
+ data?: {
3248
+ status: number;
3249
+ drama_info: {
3250
+ album_id: string;
3251
+ drama_name: string;
3252
+ drama_cover: string;
3253
+ drama_description: string;
3254
+ };
3255
+ episode_info: {
3256
+ episode_id: string;
3257
+ episode_name: string;
3258
+ episode_cover: string;
3259
+ episode_description: string;
3260
+ };
3261
+ video_info: IGetPlayInfoRes | Record<string, any>;
3262
+ perf_info?: IGetDramaInfoPerfInfo;
3263
+ };
3264
+ }
3134
3265
  /** {zh}
3135
3266
  * @list Options
3136
3267
  * @brief 视频编码格式。
@@ -3775,6 +3906,104 @@ export declare type Url = string | Array<{
3775
3906
  type?: string;
3776
3907
  [propName: string]: any;
3777
3908
  }>;
3909
+ /** {zh}
3910
+ * @list Options
3911
+ * @kind property
3912
+ * @brief 获取到媒体信息时的回调参数。
3913
+ */
3914
+ /** {en}
3915
+ * @list Options
3916
+ * @kind property
3917
+ * @brief Callback payload when media information is obtained.
3918
+ */
3919
+ export interface IGetMediaInfoCallbackPayload {
3920
+ /** {zh}
3921
+ * @brief 媒体信息。
3922
+ */
3923
+ /** {en}
3924
+ * @brief Media information.
3925
+ */
3926
+ data: {
3927
+ playList?: Stream[];
3928
+ type?: string;
3929
+ poster?: string;
3930
+ vid?: string;
3931
+ duration?: number;
3932
+ [propName: string]: any;
3933
+ };
3934
+ /** {zh}
3935
+ * @brief 媒体信息是否来自缓存。
3936
+ */
3937
+ /** {en}
3938
+ * @brief Whether the media information comes from cache.
3939
+ */
3940
+ fromCache: boolean;
3941
+ }
3942
+ /** {zh}
3943
+ * @list Options
3944
+ * @kind property
3945
+ * @brief JSB getDramaInfo 客户端耗时回调参数。
3946
+ */
3947
+ /** {en}
3948
+ * @list Options
3949
+ * @kind property
3950
+ * @brief Callback payload for client-side getDramaInfo timing returned by JSB.
3951
+ */
3952
+ export interface IGetDramaInfoPerfCallbackPayload {
3953
+ /** {zh}
3954
+ * @brief JSB 返回的客户端耗时信息,单位 ms。
3955
+ */
3956
+ /** {en}
3957
+ * @brief Client-side timing returned by JSB, in milliseconds.
3958
+ */
3959
+ perfInfo: IGetDramaInfoPerfInfo;
3960
+ /** {zh}
3961
+ * @brief 剧 ID。
3962
+ */
3963
+ albumId?: string;
3964
+ /** {zh}
3965
+ * @brief 剧集 ID。
3966
+ */
3967
+ episodeId?: string;
3968
+ /** {zh}
3969
+ * @brief 视频 ID。
3970
+ */
3971
+ vid?: string;
3972
+ /** {zh}
3973
+ * @brief JSB 是否请求成功。
3974
+ */
3975
+ isSuccess: boolean;
3976
+ /** {zh}
3977
+ * @brief 短剧审核状态。
3978
+ */
3979
+ status?: number;
3980
+ /** {zh}
3981
+ * @brief 是否来自缓存。getDramaInfo 实际请求返回时固定为 false。
3982
+ */
3983
+ fromCache: boolean;
3984
+ /** {zh}
3985
+ * @brief SDK 收到回调时的时间戳。
3986
+ */
3987
+ timestamp: number;
3988
+ }
3989
+ /** {zh}
3990
+ * @brief Minis 短剧转码参数。各字段会由 VePlayer 转换为服务端 snake_case 命名后透传。
3991
+ */
3992
+ /** {en}
3993
+ * @brief Minis short-drama transcoding parameters. VePlayer converts the fields to server-side snake_case names before forwarding them.
3994
+ */
3995
+ export interface ITranscodeParam {
3996
+ format?: string;
3997
+ codec?: string;
3998
+ definition?: string;
3999
+ fileType?: string;
4000
+ needThumbs?: string;
4001
+ needBarrageMask?: string;
4002
+ unionInfo?: string;
4003
+ quality?: string;
4004
+ drmKek?: string;
4005
+ jsPlayer?: string;
4006
+ }
3778
4007
  /** {zh}
3779
4008
  * @list Options
3780
4009
  * @kind property
@@ -3838,6 +4067,21 @@ export interface IPlayerConfig extends IPlayerOptions {
3838
4067
  * @default -
3839
4068
  */
3840
4069
  vid?: string;
4070
+ /**
4071
+ * @brief 剧id,Minis 短剧播放需要
4072
+ */
4073
+ albumId?: string;
4074
+ /**
4075
+ * @brief 剧集id,Minis 短剧播放需要
4076
+ */
4077
+ episodeId?: string;
4078
+ /** {zh}
4079
+ * @brief Minis 短剧转码参数。
4080
+ */
4081
+ /** {en}
4082
+ * @brief Minis short-drama transcoding parameters.
4083
+ */
4084
+ transcodeParam?: ITranscodeParam;
3841
4085
  /** {zh}
3842
4086
  * @brief Vid 播放配置项。应用服务端需通过 `vid` 生成临时临时播放 Token,下发给客户端。
3843
4087
  * @type {IPlayAuthTokenConfig}
@@ -3847,6 +4091,34 @@ export interface IPlayerConfig extends IPlayerOptions {
3847
4091
  * @brief Vid playback configuration. The app server generates a temporary play token from `vid` and passes it to the client.
3848
4092
  */
3849
4093
  getVideoByToken?: IPlayAuthTokenConfig;
4094
+ /** {zh}
4095
+ * @brief 通过 `playAuthToken` 或缓存获取到媒体信息时触发的回调。
4096
+ * @default -
4097
+ */
4098
+ /** {en}
4099
+ * @brief Callback fired when media information is obtained from `playAuthToken` or cache.
4100
+ * @default -
4101
+ */
4102
+ onGetMediaInfo?: (payload: IGetMediaInfoCallbackPayload) => void;
4103
+ /** {zh}
4104
+ * @brief JSB `getDramaInfo` 返回客户端耗时信息时触发的回调。
4105
+ * @default -
4106
+ */
4107
+ /** {en}
4108
+ * @brief Callback fired when JSB `getDramaInfo` returns client-side timing.
4109
+ * @default -
4110
+ */
4111
+ onGetDramaInfoPerf?: (payload: IGetDramaInfoPerfCallbackPayload) => void;
4112
+ /** {zh}
4113
+ * @brief 是否自动使用 `playAuthToken` 或短剧信息返回的字幕列表。
4114
+ * @default false
4115
+ */
4116
+ autoSubtitle?: boolean;
4117
+ /** {zh}
4118
+ * @brief 自动字幕项格式化回调。返回字符串或数字时作为字幕名称;返回 `false` 或 `{ show: false }` 时不展示该项;返回 `{ isDefault: true }` 或 `{ default: true }` 时设为默认字幕。
4119
+ * @default -
4120
+ */
4121
+ formatAutoSubtitleItem?: IAutoSubtitleItemFormatter;
3850
4122
  /** {zh}
3851
4123
  * @brief 视频加密类型
3852
4124
  * @default -
@@ -4724,6 +4996,15 @@ export interface IPlayerConfig extends IPlayerOptions {
4724
4996
  * @default 0
4725
4997
  */
4726
4998
  oriErrMaxTotalRetry?: number;
4999
+ /** {zh}
5000
+ * @brief 是否在原生媒体错误时自动重试拉流。
5001
+ * @default true
5002
+ */
5003
+ /** {en}
5004
+ * @brief Whether to automatically retry playback after native media errors.
5005
+ * @default true
5006
+ */
5007
+ enableOriErrRetry?: boolean;
4727
5008
  /** {zh}
4728
5009
  * @brief 是否在重试耗尽后发起错误诊断请求,以细化错误码。
4729
5010
  * @default true
@@ -5891,7 +6172,8 @@ export interface ApiMapConfig {
5891
6172
  playDomain: string;
5892
6173
  backupPlayDomain?: string;
5893
6174
  }
5894
- declare enum UmdKeys {
6175
+ /** UMD modules that can be loaded or explicitly pre-registered. */
6176
+ export declare enum UmdKeys {
5895
6177
  HLS = "hls",
5896
6178
  HLSJS = "hlsjs",
5897
6179
  FLV = "flv",
@@ -5910,11 +6192,13 @@ declare enum UmdKeys {
5910
6192
  Preloader = "preloader",
5911
6193
  HLSjsPro = "hlsjsPro"
5912
6194
  }
6195
+ /** Resolved UMD module values keyed by their public UMD key. */
6196
+ export declare type UmdModules = Partial<Record<UmdKeys, unknown>>;
5913
6197
  /**
5914
6198
  * @hidden
5915
- * @breif umdmap 配置
6199
+ * @breif umdmap 单项配置
5916
6200
  */
5917
- export declare type UMDMap = Record<UmdKeys, {
6201
+ export interface UMDMapEntry {
5918
6202
  /**
5919
6203
  * umd Module 的名称,即在window下暴露的接口名称
5920
6204
  */
@@ -5931,10 +6215,20 @@ export declare type UMDMap = Record<UmdKeys, {
5931
6215
  * npm包中umd入口文件路径,用于打包上传到cdn目录
5932
6216
  */
5933
6217
  devPath: string;
5934
- }>;
6218
+ }
6219
+ /**
6220
+ * @hidden
6221
+ * @breif umdmap 配置;精简构建可只提供其支持的依赖。
6222
+ */
6223
+ export declare type UMDMap = Partial<Record<UmdKeys, UMDMapEntry>>;
5935
6224
  declare class UMDLoader {
5936
6225
  private static jsLoadMap;
5937
6226
  private static jsLoadPromiseMap;
6227
+ private static registeredModules;
6228
+ /** 注册业务已打包的 UMD 模块,优先于缓存、window 全局和 script 加载。 */
6229
+ static registerModules(modules: UmdModules): void;
6230
+ /** 清除指定插件的加载缓存,使下次 loadPlugins 重新触发加载。 */
6231
+ clearPluginCache(pluginName: UmdKeys): void;
5938
6232
  umdMap: UMDMap;
5939
6233
  backupUmdUrlMap: Record<string, string>;
5940
6234
  failCallback: (umdName: string, err: any) => any;
@@ -6036,6 +6330,129 @@ export declare class SdkPlugin {
6036
6330
  */
6037
6331
  __destroy(): void;
6038
6332
  }
6333
+ /**
6334
+ * @author bytedance
6335
+ * @version 1.0
6336
+ * @Description
6337
+ * @date 2024/12/16 17:59
6338
+ */
6339
+ export declare const enum LangTextKey {
6340
+ NETWORK = "NETWORK",
6341
+ NETWORK_TIMEOUT = "NETWORK_TIMEOUT",
6342
+ NETWORK_FORBIDDEN = "NETWORK_FORBIDDEN",
6343
+ NETWORK_NOTFOUND = "NETWORK_NOTFOUND",
6344
+ NETWORK_RANGE_NOT_SATISFIABLE = "NETWORK_RANGE_NOT_SATISFIABLE",
6345
+ NETWORK_PROTOCOL = "NETWORK_PROTOCOL",
6346
+ NETWORK_URL_EXPIRE = "NETWORK_URL_EXPIRE",
6347
+ NETWORK_URL_SIGN = "NETWORK_URL_SIGN",
6348
+ NETWORK_ENCRYPT_HLS_ERR = "NETWORK_ENCRYPT_HLS_ERR",
6349
+ MEDIA_ERR = "MEDIA_ERR",
6350
+ MEDIA_ERR_ABORTED = "MEDIA_ERR_ABORTED",
6351
+ MEDIA_ERR_NETWORK = "MEDIA_ERR_NETWORK",
6352
+ MEDIA_ERR_DECODE = "MEDIA_ERR_DECODE",
6353
+ MEDIA_ERR_SRC_NOT_SUPPORTED = "MEDIA_ERR_SRC_NOT_SUPPORTED",
6354
+ MEDIA_ERR_NOT_SUPPORTED = "MEDIA_ERR_NOT_SUPPORTED",
6355
+ MEDIA_ERR_URL_EMPTY = "MEDIA_ERR_URL_EMPTY",
6356
+ MEDIA_ERR_FILE_NOT_SUPPORTED = "MEDIA_ERR_FILE_NOT_SUPPORTED",
6357
+ MEDIA_ERR_PLAY_ERR = "MEDIA_ERR_PLAY_ERR",
6358
+ MEDIA_SOURCE_CANNOT_PLAY_TYPE = "MEDIA_SOURCE_CANNOT_PLAY_TYPE",
6359
+ BUSINESS_DRM_NOT_SUPPORT = "BUSINESS_DRM_NOT_SUPPORT",
6360
+ BUSINESS_DRM_NOT_SUPPORT_UN_RECORD = "BUSINESS_DRM_NOT_SUPPORT_UN_RECORD",
6361
+ BUSINESS_DRM_LACK_MEDIA_KEY = "BUSINESS_DRM_LACK_MEDIA_KEY",
6362
+ BUSINESS_DRM_LACK_KEY_SESSION = "BUSINESS_DRM_LACK_KEY_SESSION",
6363
+ BUSINESS_DRM_GENERATE_REQUEST_FAIL = "BUSINESS_DRM_GENERATE_REQUEST_FAIL",
6364
+ BUSINESS_DRM_LACK_SERVER_CERTIFICATE_PATH = "BUSINESS_DRM_LACK_SERVER_CERTIFICATE_PATH",
6365
+ BUSINESS_DRM_LACK_SERVER_PROCESSSPC_PATH = "BUSINESS_DRM_LACK_SERVER_PROCESSSPC_PATH",
6366
+ BUSINESS_DRM_LICENSE_FAIL = "BUSINESS_DRM_LICENSE_FAIL",
6367
+ BUSINESS_DRM_KEY_ERROR = "BUSINESS_DRM_KEY_ERROR",
6368
+ BUSINESS_DRM_CERT_FAIL = "BUSINESS_DRM_CERT_FAIL",
6369
+ PRIVATE_DRM_KEY_GET_FAILED = "PRIVATE_DRM_KEY_GET_FAILED",
6370
+ PRIVATE_DRM_CRYPTO_NOT_SUPPORT = "PRIVATE_DRM_CRYPTO_NOT_SUPPORT",
6371
+ PRIVATE_DRM_RSA_FAIL = "PRIVATE_DRM_RSA_FAIL",
6372
+ OTHER = "OTHER",
6373
+ VOD_LOG_NOT_CONFIGURED = "VOD_LOG_NOT_CONFIGURED",
6374
+ PLAY_AUTH_TOKEN_EXPIRED = "PLAY_AUTH_TOKEN_EXPIRED",
6375
+ HLS_KEY_TOKEN_EXPIRED = "HLS_KEY_TOKEN_EXPIRED",
6376
+ THIRD_PARTY_DRM_AUTH_TOKEN_EXPIRED = "THIRD_PARTY_DRM_AUTH_TOKEN_EXPIRED",
6377
+ GET_PLAY_INFO_ERR = "GET_PLAY_INFO_ERR",
6378
+ GET_HLS_DECRYPTION_KEY_ERR = "GET_HLS_DECRYPTION_KEY_ERR",
6379
+ LICENSE_VALIDATE_FAIL = "LICENSE_VALIDATE_FAIL",
6380
+ DEFINITION_AUTO = "DEFINITION_AUTO",
6381
+ LICENSE_STATUS_INVALID = "LICENSE_STATUS_INVALID",
6382
+ LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH = "LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH",
6383
+ BASE_LICENSE_NOT_SUPPORT_265 = "BASE_LICENSE_NOT_SUPPORT_265",
6384
+ BASE_LICENSE_NOT_SUPPORT_ABR = "BASE_LICENSE_NOT_SUPPORT_ABR",
6385
+ BASE_LICENSE_NOT_SUPPORT_ADAPT_BUFFER = "BASE_LICENSE_NOT_SUPPORT_ADAPT_BUFFER",
6386
+ BASE_LICENSE_NOT_SUPPORT_PRELOAD = "BASE_LICENSE_NOT_SUPPORT_PRELOAD",
6387
+ EXPIRED_LICENSE_NOT_SUPPORT_265 = "EXPIRED_LICENSE_NOT_SUPPORT_265",
6388
+ EXPIRED_LICENSE_NOT_SUPPORT_ABR = "EXPIRED_LICENSE_NOT_SUPPORT_ABR",
6389
+ EXPIRED_LICENSE_NOT_SUPPORT_ADAPT_BUFFER = "EXPIRED_LICENSE_NOT_SUPPORT_ADAPT_BUFFER",
6390
+ EXPIRED_LICENSE_NOT_SUPPORT_PRELOAD = "EXPIRED_LICENSE_NOT_SUPPORT_PRELOAD",
6391
+ /** Short drama (Minis) errors — codes 93xx */
6392
+ DRAMA_INVALID_PARAM = "DRAMA_INVALID_PARAM",
6393
+ DRAMA_NO_INFO_FOUND = "DRAMA_NO_INFO_FOUND",
6394
+ DRAMA_NOT_SUBMITTED = "DRAMA_NOT_SUBMITTED",
6395
+ DRAMA_UNDER_REVIEW = "DRAMA_UNDER_REVIEW",
6396
+ DRAMA_FAILED_REVIEW = "DRAMA_FAILED_REVIEW",
6397
+ DRAMA_WITHDRAWN_REVIEW = "DRAMA_WITHDRAWN_REVIEW",
6398
+ DRAMA_FAILED_TO_QUERY = "DRAMA_FAILED_TO_QUERY",
6399
+ DRAMA_INVALID_TTOP_TOKEN = "DRAMA_INVALID_TTOP_TOKEN",
6400
+ DRAMA_NOT_ON_SHELF = "DRAMA_NOT_ON_SHELF",
6401
+ DRAMA_FAILED_GET_EPISODE_INFO = "DRAMA_FAILED_GET_EPISODE_INFO"
6402
+ }
6403
+ declare const DRAMA_ERROR_CODE: {
6404
+ /** 9301 - 短剧环境下参数不合法(如使用 url/playList 播放,或缺少 albumId / episodeId) */
6405
+ readonly INVALID_PARAM: {
6406
+ readonly code: 9301;
6407
+ readonly message: "Invalid parameter in short drama environment";
6408
+ readonly textKey: LangTextKey.DRAMA_INVALID_PARAM;
6409
+ };
6410
+ readonly NO_INFO_FOUND: {
6411
+ readonly code: 9302;
6412
+ readonly message: "No information found for this Episode";
6413
+ readonly textKey: LangTextKey.DRAMA_NO_INFO_FOUND;
6414
+ };
6415
+ readonly NOT_SUBMITTED: {
6416
+ readonly code: 9303;
6417
+ readonly message: "Episode not submitted for review";
6418
+ readonly textKey: LangTextKey.DRAMA_NOT_SUBMITTED;
6419
+ };
6420
+ readonly UNDER_REVIEW: {
6421
+ readonly code: 9304;
6422
+ readonly message: "Episode under for review";
6423
+ readonly textKey: LangTextKey.DRAMA_UNDER_REVIEW;
6424
+ };
6425
+ readonly FAILED_REVIEW: {
6426
+ readonly code: 9305;
6427
+ readonly message: "Episode failed review";
6428
+ readonly textKey: LangTextKey.DRAMA_FAILED_REVIEW;
6429
+ };
6430
+ readonly WITHDRAWN_REVIEW: {
6431
+ readonly code: 9306;
6432
+ readonly message: "Episode withdrawn from review";
6433
+ readonly textKey: LangTextKey.DRAMA_WITHDRAWN_REVIEW;
6434
+ };
6435
+ readonly FAILED_TO_QUERY: {
6436
+ readonly code: 9307;
6437
+ readonly message: "Failed to query video playback information";
6438
+ readonly textKey: LangTextKey.DRAMA_FAILED_TO_QUERY;
6439
+ };
6440
+ readonly INVALID_TTOP_TOKEN: {
6441
+ readonly code: 9308;
6442
+ readonly message: "Invalid playAuthToken or failed to verify TTOP token";
6443
+ readonly textKey: LangTextKey.DRAMA_INVALID_TTOP_TOKEN;
6444
+ };
6445
+ readonly NOT_ON_SHELF: {
6446
+ readonly code: 9310;
6447
+ readonly message: "Video is not on shelf";
6448
+ readonly textKey: LangTextKey.DRAMA_NOT_ON_SHELF;
6449
+ };
6450
+ readonly FAILED_GET_EPISODE_INFO: {
6451
+ readonly code: 9399;
6452
+ readonly message: "Failed get episode info";
6453
+ readonly textKey: LangTextKey.DRAMA_FAILED_GET_EPISODE_INFO;
6454
+ };
6455
+ };
6039
6456
  declare class AuthToken extends SdkPlugin {
6040
6457
  static get pluginName(): string;
6041
6458
  isPlayByToken: boolean;
@@ -6051,20 +6468,57 @@ declare class AuthToken extends SdkPlugin {
6051
6468
  playInfo?: VideoInfoRes;
6052
6469
  constructor(args: any);
6053
6470
  beforePlayerCreate(): Promise<void>;
6054
- getVideoInfo(): Promise<{
6471
+ getVideoInfo(sourceConfigs?: IPlayerConfig): Promise<{
6055
6472
  vid: string;
6056
6473
  playList: Stream[];
6057
6474
  codec: ICodecType;
6058
6475
  defaultDefinition: string;
6059
6476
  }>;
6060
- getVideos(): Promise<any>;
6477
+ /**
6478
+ * 短剧 Minis 环境:通过 JSB getDramaInfo 获取媒体信息
6479
+ */
6480
+ getDramaInfoViaJSB(sourceConfigs?: IPlayerConfig): Promise<VideoInfoRes | undefined>;
6481
+ /**
6482
+ * 将审核状态映射到短剧错误码
6483
+ */
6484
+ mapReviewStatusToErrorCode(status: number): keyof typeof DRAMA_ERROR_CODE;
6485
+ /**
6486
+ * 根据 JSB 返回的 msg 或 status 映射到错误码 key
6487
+ */
6488
+ mapDramaErrorCode(msg: string, status?: number): keyof typeof DRAMA_ERROR_CODE;
6489
+ /**
6490
+ * 将 JSB 返回的 video_info 转换为 VideoInfoRes 格式
6491
+ */
6492
+ transformDramaVideoInfoToRes(videoInfo: any, config: IPlayAuthTokenConfig): VideoInfoRes;
6493
+ callOnGetMediaInfo(mediaInfo: VideoInfoRes | undefined, fromCache: boolean): void;
6494
+ reportGetDramaInfoPerf(res: IJSBCallbackResult | undefined, request: {
6495
+ albumId?: string;
6496
+ episodeId?: string;
6497
+ vid?: string;
6498
+ }): void;
6499
+ getVideos(sourceConfigs?: IPlayerConfig): Promise<any>;
6061
6500
  getPrivateDrmInfo(playList: Stream[], vid: string, streamType: string): Promise<void>;
6062
6501
  getThumbnailConfig(thumbs: IThumbInfoItem[]): void;
6063
6502
  getBarrageMaskUrl(url: string): void;
6503
+ setSubtitleConfig(mediaInfo: VideoInfoRes | undefined): void;
6504
+ getAutoSubtitleList(mediaInfo: VideoInfoRes): ISubTitleItem[];
6505
+ getSubtitleSourceData(mediaInfo: VideoInfoRes): any;
6506
+ getAutoSubtitleItem(item: any, index: number): ISubTitleItem | undefined;
6507
+ getStringAutoSubtitleItem(item: string, index: number): ISubTitleItem;
6508
+ getObjectAutoSubtitleItem(item: any, index: number): ISubTitleItem | undefined;
6509
+ formatAutoSubtitleItem(subtitleItem: ISubTitleItem, rawItem: any, index: number): ISubTitleItem | undefined;
6064
6510
  getDrmConfig(videoInfo: IVideoInfo): void;
6511
+ /**
6512
+ * 是否处于短剧 Minis 环境(通过剧 ID + 剧集 ID 获取视频)
6513
+ */
6514
+ get isMinisDramaMode(): boolean;
6065
6515
  init(): void;
6066
- initConfig(getVideoByToken: IPlayAuthTokenConfig): void;
6067
- /** {zh}
6516
+ initConfig(getVideoByToken: IPlayAuthTokenConfig, sourceConfigs?: IPlayerConfig): void;
6517
+ /**
6518
+ * 剧集切换:configs 已由 player 更新 album_id/episode_id,重新拉取媒体信息
6519
+ */
6520
+ updateDramaEpisode(isNewVideo: boolean, candidateConfig?: IPlayerConfig): Promise<void>;
6521
+ /**
6068
6522
  * @description 更新playAuthToken
6069
6523
  * @param {IPlayAuthTokenConfig} getVideoByToken token信息
6070
6524
  * @param {boolean} isNewVideo 是否新视频,即是否为切换视频
@@ -6186,9 +6640,7 @@ declare class PlayerData {
6186
6640
  * @brief 私有加密会话id
6187
6641
  */
6188
6642
  encryptSessionId?: string;
6189
- constructor(configs: IPlayerConfig & {
6190
- licensSupportModuleList: string[];
6191
- }, sdk: VePlayer);
6643
+ constructor(configs: IPlayerConfig, sdk: VePlayer);
6192
6644
  /**
6193
6645
  * 初始化播放数据
6194
6646
  * @param configs { IPlayerConfig } 播放器配置
@@ -6268,6 +6720,10 @@ declare class PlayerData {
6268
6720
  */
6269
6721
  get playDomain(): string;
6270
6722
  setVodTeaId(): void;
6723
+ /**
6724
+ * 基于当前配置生成合并后的候选配置,不修改当前播放状态。
6725
+ */
6726
+ getMergedConfigs(newConfigs: IPlayerConfig): IPlayerConfig;
6271
6727
  /**
6272
6728
  * 更新configs,即更新用户的configs,常用于playNext时
6273
6729
  * @param newConfigs {IPlayerConfig} 要更新的配置
@@ -6455,7 +6911,7 @@ export declare type IPreloadUpdateConfig = {
6455
6911
  * @brief Preload video resource.
6456
6912
  * @detail Options
6457
6913
  */
6458
- export declare type IPreloadStream = {
6914
+ export declare type IPreloadResolvedStream = {
6459
6915
  /** {zh}
6460
6916
  * @brief 视频 ID
6461
6917
  */
@@ -6513,83 +6969,301 @@ export declare type IPreloadStream = {
6513
6969
  */
6514
6970
  size: number;
6515
6971
  };
6516
- export type TLogChannel = "cn" | "va" | "sg";
6517
- /** {zh}
6518
- * @hidden
6519
- * h265策略配置
6520
- * @detail Options
6521
- */
6522
- /** {en}
6523
- * @hidden
6524
- * @brief H.265 strategy configuration.
6525
- * @detail Options
6526
- */
6527
- export declare type IH265Config = {
6972
+ export declare type IPreloadDramaStream = {
6973
+ vid?: string;
6974
+ albumId: string;
6975
+ episodeId: string;
6528
6976
  /** {zh}
6529
- * @brief h265策略依赖Module
6977
+ * @brief 默认清晰度,仅用于从完整媒体信息中选择预加载流。
6530
6978
  */
6531
6979
  /** {en}
6532
- * @brief H.265 strategy dependency module.
6980
+ * @brief Default definition used only to select a preload stream from complete media information.
6533
6981
  */
6534
- Strategy?: any;
6982
+ defaultDefinition?: string;
6535
6983
  /** {zh}
6536
- * @brief 是否禁用265策略
6984
+ * @brief Minis 短剧转码参数。
6537
6985
  */
6538
6986
  /** {en}
6539
- * @brief Whether to disable the H.265 strategy.
6987
+ * @brief Transcoding parameters for Minis short dramas.
6540
6988
  */
6541
- disabled?: boolean;
6542
- } & VeStrategyH265Config;
6989
+ transcodeParam?: ITranscodeParam;
6990
+ /** {zh}
6991
+ * @brief Vid 播放配置。短剧预加载会复用 playAuthToken 等配置请求短剧信息。
6992
+ */
6993
+ /** {en}
6994
+ * @brief Vid playback configuration reused by short-drama preload requests.
6995
+ */
6996
+ getVideoByToken?: IPlayAuthTokenConfig;
6997
+ };
6998
+ export declare type IPreloadAuthTokenStream = {
6999
+ vid?: string;
7000
+ defaultDefinition?: string;
7001
+ getVideoByToken: IPlayAuthTokenConfig;
7002
+ };
7003
+ export declare type IPreloadStream = IPreloadResolvedStream | IPreloadDramaStream | IPreloadAuthTokenStream;
6543
7004
  /** {zh}
6544
- * 预加载初始配置
6545
- * @detail Options
7005
+ * @list Options
7006
+ * @brief 字幕项。
7007
+ * @kind property
6546
7008
  */
6547
7009
  /** {en}
6548
- * @brief Preload initial configuration.
6549
- * @detail Options
7010
+ * @list Options
7011
+ * @brief Subtitle item.
7012
+ * @kind property
6550
7013
  */
6551
- export declare type IPreloadConfig = {
7014
+ export interface ISubTitleItem {
6552
7015
  /** {zh}
6553
- * 预加载场景
6554
- * - 0:手动执行
6555
- * - 1:字段执行
6556
- * @default 0
7016
+ * @brief 字幕语言。
7017
+ * @default -
6557
7018
  */
6558
7019
  /** {en}
6559
- * @brief Preload scene.
6560
- * - 0: manual execution
6561
- * - 1: automatic execution
6562
- * @default 0
7020
+ * @brief Subtitle language.
7021
+ * @default -
6563
7022
  */
6564
- preloadScene?: PreloadScene;
7023
+ language?: string | number;
6565
7024
  /** {zh}
6566
- * @brief 视频格式
6567
- * - mp4: mp4格式
6568
- * - hls: hls格式
6569
- * @default mp4
7025
+ * @brief 字幕 ID。
7026
+ * @default -
6570
7027
  */
6571
7028
  /** {en}
6572
- * @brief Video format.
6573
- * @default mp4
7029
+ * @brief Subtitle ID.
7030
+ * @default -
6574
7031
  */
6575
- format?: PreloadFormat;
7032
+ id?: number | string;
6576
7033
  /** {zh}
6577
- * 向前预加载视频个数,Feed流场景时生效
6578
- * @default 1
6579
- * @brief 向前预加载视频个数。Feed 流场景时生效。
7034
+ * @brief 是否为默认选择的字幕。
7035
+ * @default false
6580
7036
  */
6581
7037
  /** {en}
6582
- * @brief Number of videos to preload ahead. Effective in Feed scenarios.
6583
- * @default 1
7038
+ * @brief Whether this is the default selected subtitle.
7039
+ * @default false
6584
7040
  */
6585
- prevCount?: number;
7041
+ isDefault?: boolean;
6586
7042
  /** {zh}
6587
- * @brief 向后预加载视频个数。Feed 流场景生效
6588
- * @default 2
7043
+ * @brief 字幕名称。
7044
+ * @default -
6589
7045
  */
6590
7046
  /** {en}
6591
- * @brief Number of videos to preload behind. Effective in Feed scenarios.
6592
- * @default 2
7047
+ * @brief Subtitle display name.
7048
+ * @default -
7049
+ */
7050
+ text?: string;
7051
+ /** {zh}
7052
+ * @brief 字幕名称。兼容 xgplayer-subtitles 的 label 字段。
7053
+ * @default -
7054
+ */
7055
+ /** {en}
7056
+ * @brief 字幕名称。兼容 xgplayer-subtitles 的 label 字段。
7057
+ * @default -
7058
+ */
7059
+ label?: string | number;
7060
+ /** {zh}
7061
+ * @brief 外挂字幕 URL 地址。
7062
+ * @default -
7063
+ */
7064
+ /** {en}
7065
+ * @brief External subtitle URL.
7066
+ * @default -
7067
+ */
7068
+ url?: string;
7069
+ /**
7070
+ * @hidden
7071
+ * @type {string}
7072
+ * @memberof ISubTitleItem
7073
+ */
7074
+ stringContent?: string;
7075
+ /** {zh}
7076
+ * @brief 字幕内容列表。非 `url` 形式时使用。
7077
+ * @default -
7078
+ * @type {Array<Object>}
7079
+ * @memberof ISubTitleItem
7080
+ */
7081
+ /** {en}
7082
+ * @brief Subtitle content list when not using URL.
7083
+ * @default -
7084
+ * @type {Array<Object>}
7085
+ * @memberof ISubTitleItem
7086
+ */
7087
+ list?: IListItem[];
7088
+ }
7089
+ /** {zh}
7090
+ * @brief 字幕内容项。
7091
+ * @list Options
7092
+ * @kind property
7093
+ * @export
7094
+ * @interface IListItem
7095
+ */
7096
+ /** {en}
7097
+ * @brief Subtitle content item.
7098
+ * @list Options
7099
+ * @kind property
7100
+ * @export
7101
+ * @interface IListItem
7102
+ */
7103
+ export interface IListItem {
7104
+ /** {zh}
7105
+ * @brief 开始时间,单位为秒。
7106
+ * @type {number}
7107
+ */
7108
+ /** {en}
7109
+ * @brief Start time in seconds.
7110
+ * @type {number}
7111
+ */
7112
+ start: number;
7113
+ /** {zh}
7114
+ * @brief 结束时间,单位为秒。
7115
+ * @type {number}
7116
+ */
7117
+ /** {en}
7118
+ * @brief End time in seconds.
7119
+ * @type {number}
7120
+ */
7121
+ end: number;
7122
+ /** {zh}
7123
+ * @brief 字幕数据列表。
7124
+ * @type {Array<ITextItem>}
7125
+ */
7126
+ /** {en}
7127
+ * @brief Subtitle cue data list.
7128
+ * @type {Array<ITextItem>}
7129
+ */
7130
+ list: Array<ITextItem>;
7131
+ /**
7132
+ * @hidden
7133
+ * @type {any}
7134
+ */
7135
+ [propName: string]: any;
7136
+ }
7137
+ /** {zh}
7138
+ * @brief 字幕文案配置。
7139
+ * @list Options
7140
+ * @kind property
7141
+ */
7142
+ /** {en}
7143
+ * @brief Subtitle text item configuration.
7144
+ * @list Options
7145
+ * @kind property
7146
+ */
7147
+ export interface ITextItem {
7148
+ /**
7149
+ * @hidden
7150
+ * @type {any}
7151
+ */
7152
+ [propName: string]: any;
7153
+ /** {zh}
7154
+ * @brief 开始时间,单位为秒。
7155
+ * @type {number}
7156
+ */
7157
+ /** {en}
7158
+ * @brief Start time in seconds.
7159
+ * @type {number}
7160
+ */
7161
+ start: number;
7162
+ /** {zh}
7163
+ * @brief 结束时间,单位为秒。
7164
+ * @type {number}
7165
+ */
7166
+ /** {en}
7167
+ * @brief End time in seconds.
7168
+ * @type {number}
7169
+ */
7170
+ end: number;
7171
+ /** {zh}
7172
+ * @brief 字幕文案数组。
7173
+ * @type {string[]}
7174
+ */
7175
+ /** {en}
7176
+ * @brief Subtitle text array.
7177
+ * @type {string[]}
7178
+ */
7179
+ text: string[];
7180
+ /** {zh}
7181
+ * @brief 字幕顺序。
7182
+ * @type {number}
7183
+ */
7184
+ /** {en}
7185
+ * @brief Subtitle display order.
7186
+ * @type {number}
7187
+ */
7188
+ index?: number;
7189
+ }
7190
+ export type TLogChannel = "cn" | "va" | "sg";
7191
+ /** {zh}
7192
+ * @hidden
7193
+ * h265策略配置
7194
+ * @detail Options
7195
+ */
7196
+ /** {en}
7197
+ * @hidden
7198
+ * @brief H.265 strategy configuration.
7199
+ * @detail Options
7200
+ */
7201
+ export declare type IH265Config = {
7202
+ /** {zh}
7203
+ * @brief h265策略依赖Module
7204
+ */
7205
+ /** {en}
7206
+ * @brief H.265 strategy dependency module.
7207
+ */
7208
+ Strategy?: any;
7209
+ /** {zh}
7210
+ * @brief 是否禁用265策略
7211
+ */
7212
+ /** {en}
7213
+ * @brief Whether to disable the H.265 strategy.
7214
+ */
7215
+ disabled?: boolean;
7216
+ } & VeStrategyH265Config;
7217
+ /** {zh}
7218
+ * 预加载初始配置
7219
+ * @detail Options
7220
+ */
7221
+ /** {en}
7222
+ * @brief Preload initial configuration.
7223
+ * @detail Options
7224
+ */
7225
+ export declare type IPreloadConfig = {
7226
+ /** {zh}
7227
+ * 预加载场景
7228
+ * - 0:手动执行
7229
+ * - 1:字段执行
7230
+ * @default 0
7231
+ */
7232
+ /** {en}
7233
+ * @brief Preload scene.
7234
+ * - 0: manual execution
7235
+ * - 1: automatic execution
7236
+ * @default 0
7237
+ */
7238
+ preloadScene?: PreloadScene;
7239
+ /** {zh}
7240
+ * @brief 视频格式
7241
+ * - mp4: mp4格式
7242
+ * - hls: hls格式
7243
+ * @default mp4
7244
+ */
7245
+ /** {en}
7246
+ * @brief Video format.
7247
+ * @default mp4
7248
+ */
7249
+ format?: PreloadFormat;
7250
+ /** {zh}
7251
+ * 向前预加载视频个数,Feed流场景时生效
7252
+ * @default 1
7253
+ * @brief 向前预加载视频个数。Feed 流场景时生效。
7254
+ */
7255
+ /** {en}
7256
+ * @brief Number of videos to preload ahead. Effective in Feed scenarios.
7257
+ * @default 1
7258
+ */
7259
+ prevCount?: number;
7260
+ /** {zh}
7261
+ * @brief 向后预加载视频个数。Feed 流场景生效
7262
+ * @default 2
7263
+ */
7264
+ /** {en}
7265
+ * @brief Number of videos to preload behind. Effective in Feed scenarios.
7266
+ * @default 2
6593
7267
  */
6594
7268
  nextCount?: number;
6595
7269
  /** {zh}
@@ -6750,8 +7424,8 @@ export declare type StrategyInitOptions = {
6750
7424
  Module?: typeof VeStrategy;
6751
7425
  };
6752
7426
  declare class VeStrategyManager {
6753
- tea: Collector;
6754
- private static mapStrategyNameToUmdKey;
7427
+ tea: InstanceType<CollectorConstructor> | undefined;
7428
+ private collector;
6755
7429
  teaId: number;
6756
7430
  teaChannel: TLogChannel;
6757
7431
  private sdkUmdLoader;
@@ -6811,6 +7485,75 @@ export interface ILicenseConfig {
6811
7485
  expireDiffTime?: number;
6812
7486
  expireCallback?: (expireDiffTime?: number) => void;
6813
7487
  }
7488
+ export declare type MediaInfoCacheType = "memory" | "localStorage";
7489
+ /** {zh}
7490
+ * @brief 媒体信息本地缓存配置。
7491
+ * @list Options
7492
+ * @kind property
7493
+ */
7494
+ /** {en}
7495
+ * @brief Local media info cache config.
7496
+ * @list Options
7497
+ * @kind property
7498
+ */
7499
+ export interface MediaInfoCacheConfig {
7500
+ /** {zh}
7501
+ * @brief 是否启用媒体信息本地缓存。默认关闭。
7502
+ * @default false
7503
+ */
7504
+ /** {en}
7505
+ * @brief Whether to enable local media info cache. Disabled by default.
7506
+ * @default false
7507
+ */
7508
+ enable?: boolean;
7509
+ /** {zh}
7510
+ * @brief 缓存方式。默认使用内存缓存,设置为 localStorage 时写入浏览器本地存储。
7511
+ * @default memory
7512
+ */
7513
+ /** {en}
7514
+ * @brief Cache storage type. Memory cache is used by default. Set to localStorage to write browser local storage.
7515
+ * @default memory
7516
+ */
7517
+ cacheType?: MediaInfoCacheType;
7518
+ /** {zh}
7519
+ * @brief 缓存过期时间,单位毫秒。默认 30 分钟。
7520
+ * @default 1800000
7521
+ */
7522
+ /** {en}
7523
+ * @brief Cache expiration time in milliseconds. Defaults to 30 minutes.
7524
+ * @default 1800000
7525
+ */
7526
+ expireTime?: number;
7527
+ /** {zh}
7528
+ * @brief 最多缓存的媒体信息条数,默认 100。
7529
+ * @default 100
7530
+ */
7531
+ /** {en}
7532
+ * @brief Maximum number of media info entries to cache. Defaults to 100.
7533
+ * @default 100
7534
+ */
7535
+ maxEntries?: number;
7536
+ }
7537
+ export declare type NormalizedMediaInfoCacheConfig = {
7538
+ enable: boolean;
7539
+ expireTime: number;
7540
+ cacheType: MediaInfoCacheType;
7541
+ maxEntries: number;
7542
+ };
7543
+ declare function getMediaInfoCacheConfig(): NormalizedMediaInfoCacheConfig;
7544
+ export interface DramaIdentity {
7545
+ albumId: string | null;
7546
+ episodeId: string | null;
7547
+ }
7548
+ export declare type PlayerPlaybackState = "creating" | "ready" | "playing" | "paused" | "buffering" | "ended" | "error" | "destroyed";
7549
+ export interface PlayerPlaybackStateSnapshot extends DramaIdentity {
7550
+ playbackState: PlayerPlaybackState;
7551
+ isEnded: boolean;
7552
+ isPaused: boolean;
7553
+ isBeforePlayerCreate: boolean;
7554
+ duration: number;
7555
+ currentTime: number;
7556
+ }
6814
7557
  /** {zh}
6815
7558
  * @hidden
6816
7559
  */
@@ -6863,6 +7606,19 @@ export interface EncryptInfo {
6863
7606
  unionInfo: string;
6864
7607
  }
6865
7608
  declare class VePlayer {
7609
+ /** {zh}
7610
+ * @brief 供 JSSDK 门面查询当前播放器播放状态。
7611
+ * @hidden
7612
+ */
7613
+ /** {en}
7614
+ * @brief Returns the current player playback state for the JSSDK facade.
7615
+ * @hidden
7616
+ */
7617
+ static getPlayerPlaybackState(): PlayerPlaybackStateSnapshot | null;
7618
+ /**
7619
+ * 注册业务已打包的 UMD 模块,供所有后续创建的播放器共享使用。
7620
+ */
7621
+ static registerModules(modules: UmdModules): void;
6866
7622
  /** {zh}
6867
7623
  * @brief 播放相关配置数据
6868
7624
  * @hidden
@@ -6946,6 +7702,18 @@ declare class VePlayer {
6946
7702
  private _suppressAudioTrackMemoryTimer;
6947
7703
  /** playNext 后置为 true,直到新视频首个 addtrack 到达前屏蔽旧视频 change 事件的干扰 */
6948
7704
  private _playNextPending;
7705
+ /**
7706
+ * @hidden
7707
+ * createPlayer 阶段耗时采集器(仅在 createPlayer 执行期间存在)
7708
+ */
7709
+ _createPlayerPerf?: CreatePlayerPerfCollector;
7710
+ /**
7711
+ * @hidden
7712
+ * 最近一次 createPlayer 性能报告
7713
+ */
7714
+ private _lastCreatePlayerPerfReport?;
7715
+ private _isCollectingCreatePlayerPerf;
7716
+ private _getDramaInfoPerfRecords;
6949
7717
  /**
6950
7718
  *
6951
7719
  *
@@ -6988,6 +7756,22 @@ declare class VePlayer {
6988
7756
  * @memberof VePlayer
6989
7757
  */
6990
7758
  delayError: any[];
7759
+ /** {zh}
7760
+ * @brief 设置是否为通过短剧信息或 playAuthToken 获取到的视频地址追加时间戳 query(t=Date.now())。
7761
+ * @param enable true=追加时间戳,false=不追加
7762
+ */
7763
+ /** {en}
7764
+ * @brief Set whether to append a timestamp query (t=Date.now()) to video URLs from drama info or playAuthToken.
7765
+ * @param enable true=append timestamp, false=do not append
7766
+ */
7767
+ static setAppendVideoUrlTimestamp(enable?: boolean): void;
7768
+ /** {zh}
7769
+ * @hidden
7770
+ */
7771
+ /** {en}
7772
+ * @hidden
7773
+ */
7774
+ static getAppendVideoUrlTimestamp(): boolean;
6991
7775
  /**
6992
7776
  * @hidden
6993
7777
  * umd加载器
@@ -7003,7 +7787,6 @@ declare class VePlayer {
7003
7787
  /**
7004
7788
  * @hidden
7005
7789
  */
7006
- static isRTMSupported: typeof import("@byted/xgplayer-rts").RtsPlugin.isSupported;
7007
7790
  /**
7008
7791
  * @hidden
7009
7792
  */
@@ -7019,6 +7802,62 @@ declare class VePlayer {
7019
7802
  * @memberof VePlayer
7020
7803
  */
7021
7804
  static sdkVersion: string;
7805
+ /**
7806
+ * @brief TT短剧环境配置
7807
+ * @type {ITTDramaEnv | null}
7808
+ * @memberof VePlayer
7809
+ */
7810
+ static ttDramaEnv: ITTDramaEnv | null;
7811
+ /** {zh}
7812
+ * @brief 设置TT短剧播放环境
7813
+ * @param env 短剧环境配置,详情见{@link ITTDramaEnv}
7814
+ */
7815
+ static setTTDramaEnv(env: ITTDramaEnv): void;
7816
+ /** {zh}
7817
+ * @brief 设置媒体信息本地缓存配置,默认关闭。开启后,通过短剧信息或 playAuthToken 获取媒体信息时优先使用缓存。
7818
+ * @param config 缓存配置
7819
+ */
7820
+ /** {en}
7821
+ * @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.
7822
+ * @param config Cache config
7823
+ */
7824
+ static setMediaInfoCacheConfig(config: MediaInfoCacheConfig): void;
7825
+ /** {zh}
7826
+ * @brief 获取当前媒体信息本地缓存配置。
7827
+ * @returns 当前媒体信息缓存配置。
7828
+ */
7829
+ /** {en}
7830
+ * @brief Get current local media info cache config.
7831
+ * @returns Current media info cache config.
7832
+ */
7833
+ static getMediaInfoCacheConfig(): ReturnType<typeof getMediaInfoCacheConfig>;
7834
+ /** {zh}
7835
+ * @brief 清除媒体信息缓存,会同时清除内存缓存和 localStorage 缓存。
7836
+ */
7837
+ /** {en}
7838
+ * @brief Clear media info cache from both memory cache and localStorage cache.
7839
+ */
7840
+ static clearMediaInfoCache(): void;
7841
+ /** {zh}
7842
+ * @brief 设置全局日志开关。开启后会输出 VE_DEBUG.log 级别日志。
7843
+ * @param enable 是否开启详细日志
7844
+ */
7845
+ /** {en}
7846
+ * @brief Set the global log switch. When enabled, VE_DEBUG.log level logs are printed.
7847
+ * @param enable Whether to enable verbose logs
7848
+ */
7849
+ static setDebug(enable: boolean): void;
7850
+ /** {zh}
7851
+ * @brief 设置可选的 Tea Collector 构造函数。传入 undefined 可清除后续实例的注册。
7852
+ * @param Collector Tea Collector 构造函数
7853
+ */
7854
+ /** {en}
7855
+ * @brief Set the optional Tea Collector constructor. Pass undefined to clear it for subsequent instances.
7856
+ * @param Collector Tea Collector constructor
7857
+ */
7858
+ static setCollector(Collector?: CollectorConstructor): void;
7859
+ /** @hidden 短剧 Minis 环境与 Lite 构建均不执行 License 校验。 */
7860
+ private static shouldCheckLicense;
7022
7861
  /**
7023
7862
  * @hidden
7024
7863
  */
@@ -7068,7 +7907,7 @@ declare class VePlayer {
7068
7907
  /** {en}
7069
7908
  * @brief Add videos to the preload list.
7070
7909
  */
7071
- static addPreloadList(list: IPreloadStream[]): void;
7910
+ static addPreloadList(list: IPreloadStream[]): Promise<void>;
7072
7911
  /** {zh}
7073
7912
  * @brief 设置待预加载视频列表,替换当前已设置的待预加载列表
7074
7913
  * @param list 待预加载视频列表,详情见{@link IPreloadStream[]}
@@ -7089,9 +7928,7 @@ declare class VePlayer {
7089
7928
  * @param codec
7090
7929
  * @param options
7091
7930
  */
7092
- static isRTMSupportCodec: (codec: RTMCodec, options: {
7093
- targetProfileLevel?: string;
7094
- }) => Promise<boolean>;
7931
+ static isRTMSupported: typeof import("@byted/xgplayer-rts").RtsPlugin.isSupported;
7095
7932
  static setLicenseConfig(config: ILicenseConfig): Promise<void>;
7096
7933
  static checkLicense(): Promise<LicenseEdition>;
7097
7934
  static checkModuleList(): Promise<string[]>;
@@ -7126,6 +7963,8 @@ declare class VePlayer {
7126
7963
  * @brief Constructor.
7127
7964
  */
7128
7965
  constructor(configs: IPlayerConfig);
7966
+ /** @hidden */
7967
+ assertLiteConfig(config?: Partial<IPlayerConfig>): void;
7129
7968
  /**
7130
7969
  *
7131
7970
  * @hidden
@@ -7268,6 +8107,7 @@ declare class VePlayer {
7268
8107
  * @memberof VePlayer
7269
8108
  */
7270
8109
  createPlayer: () => Promise<PlayerCore>;
8110
+ private _createPlayer;
7271
8111
  private checkLicenseCallback;
7272
8112
  /** {zh}
7273
8113
  * @hidden
@@ -7344,6 +8184,28 @@ declare class VePlayer {
7344
8184
  * @memberof VePlayer
7345
8185
  */
7346
8186
  beforePlayerCreate(): Promise<void>;
8187
+ /** {zh}
8188
+ * @hidden
8189
+ * @brief 获取最近一次 createPlayer 的性能报告。
8190
+ */
8191
+ /** {en}
8192
+ * @hidden
8193
+ * @brief Get the perf report of the latest createPlayer.
8194
+ */
8195
+ getCreatePlayerPerfReport(): ICreatePlayerPerfReport;
8196
+ /**
8197
+ * @brief 记录一次 JSB getDramaInfo 返回的客户端耗时信息。
8198
+ */
8199
+ recordGetDramaInfoPerf(payload: IGetDramaInfoPerfCallbackPayload): void;
8200
+ /**
8201
+ * @brief 获取当前播放器实例记录到的 getDramaInfo 客户端耗时列表。
8202
+ */
8203
+ getDramaInfoPerfRecords(): IGetDramaInfoPerfCallbackPayload[];
8204
+ /**
8205
+ * @brief 获取最近一次 getDramaInfo 客户端耗时。
8206
+ */
8207
+ getLastDramaInfoPerf(): IGetDramaInfoPerfCallbackPayload | undefined;
8208
+ private _markGetDramaInfoClientPerf;
7347
8209
  private prepareStrategies;
7348
8210
  /**
7349
8211
  * @hidden
@@ -7390,6 +8252,7 @@ declare class VePlayer {
7390
8252
  * @memberof VePlayer
7391
8253
  */
7392
8254
  private _bindPlayerEvents;
8255
+ private _onMp4PreloadInfo;
7393
8256
  private _proxyError;
7394
8257
  private _onError;
7395
8258
  /** {zh}
@@ -7567,7 +8430,7 @@ declare class VePlayer {
7567
8430
  * @memberof VePlayer
7568
8431
  * @notes - 成功更换视频源后,默认是暂停状态。如果设置了自动播放,则会自动播放。
7569
8432
  * - 此接口不支持切换火山引擎私有加密视频。
7570
- * @param config 播放器实例化配置。此接口仅支持 `IPlayerConfig` 中的 `url`、`playList`、`poster`、`getVideoByToken` 字段。。
8433
+ * @param config 播放器实例化配置
7571
8434
  * @param isNewVideo 是否为新视频。为 `false` 时,更换后,会从更换前的时间点继续播放。
7572
8435
  */
7573
8436
  /** {en}
@@ -7576,7 +8439,15 @@ declare class VePlayer {
7576
8439
  * @memberof VePlayer
7577
8440
  */
7578
8441
  playNext(config: IPlayerConfig, isNewVideo?: boolean): Promise<any>;
8442
+ private updatePlayNextSubtitleConfig;
7579
8443
  private _playNext;
8444
+ private _createDramaPlayNextCandidateConfig;
8445
+ /** 从 playerData.configs 取出短剧 id,供 XGPlayer setConfig / playNext 与切换后 configs 一致 */
8446
+ private _getDramaConfigPatchForPlayer;
8447
+ private _buildDramaInvalidParamError;
8448
+ private _getDramaAlbumIdFromConfig;
8449
+ private _getDramaEpisodeIdFromConfig;
8450
+ private switchDramaEpisode;
7580
8451
  /** {zh}
7581
8452
  * @brief 销毁xgplayer实例
7582
8453
  *
@@ -7927,8 +8798,41 @@ declare class VePlayer {
7927
8798
  */
7928
8799
  getPlugin(pluginName: string): null | BasePlugin;
7929
8800
  /** {zh}
8801
+ * @brief 获取字幕列表。需配置 `Subtitle` 插件后调用。
8802
+ * @return 当前字幕列表,每项包含 `id`、`language`、`text`(显示名称)等字段。列表为空时返回空数组。
8803
+ * @memberof VePlayer
8804
+ */
8805
+ getSubtitleList(): ISubTitleItem[];
8806
+ /** {zh}
8807
+ * @brief 切换字幕。需配置 `Subtitle` 插件后调用。
8808
+ * @param subtitle 目标字幕的 id 或 language,任意一个非空即可定位字幕项。
8809
+ * @return 切换成功时 resolve,失败(未找到、切换被中止)时 reject。
8810
+ * @memberof VePlayer
8811
+ */
8812
+ switchSubtitle(subtitle: {
8813
+ id?: string | number;
8814
+ language?: string | number;
8815
+ }): Promise<void>;
8816
+ /** {zh}
8817
+ * @brief 开启字幕展示。恢复上次选中的字幕项;若从未选中过则默认选第一项。需配置 `Subtitle` 插件后调用。
7930
8818
  * @memberof VePlayer
8819
+ */
8820
+ showSubtitle(): void;
8821
+ /** {zh}
8822
+ * @brief 关闭字幕展示。字幕数据保留,可通过 `showSubtitle` 重新开启。需配置 `Subtitle` 插件后调用。
8823
+ * @memberof VePlayer
8824
+ */
8825
+ hideSubtitle(): void;
8826
+ /** {zh}
8827
+ * @hidden
8828
+ */
8829
+ /** {en}
8830
+ * @hidden
8831
+ */
8832
+ private _teardown;
8833
+ /** {zh}
7931
8834
  * @brief 销毁当前播放器实例。
8835
+ * @memberof VePlayer
7932
8836
  */
7933
8837
  /** {en}
7934
8838
  * @brief Destroy the current player instance.
@@ -8350,344 +9254,242 @@ export declare class MirrorPlugin extends Plugin {
8350
9254
  destroy(): void;
8351
9255
  render(): string;
8352
9256
  }
8353
- export declare type InfoItem = {
8354
- key: string;
8355
- label: string;
8356
- labelTextKey?: string;
8357
- value?: any;
8358
- render?: (key: any) => string;
8359
- type?: string;
8360
- dom?: Element;
8361
- };
8362
- /**
8363
- * 直播信息面板
8364
- */
8365
- export declare class LiveInfoPanel extends Plugin {
8366
- private _pollTimer;
8367
- private _infoItems;
8368
- static get pluginName(): string;
8369
- static get defaultConfig(): {
8370
- visible: boolean;
8371
- showH265Info: boolean;
8372
- };
8373
- get streamType(): any;
8374
- afterCreate(): void;
8375
- registerLanguageTexts(): {
8376
- DECODEFPS: {
8377
- en: string;
8378
- zh: string;
8379
- };
8380
- DECODECOST: {
8381
- en: string;
8382
- zh: string;
8383
- };
8384
- FORMAT: {
8385
- en: string;
8386
- zh: string;
8387
- };
8388
- FPS: {
8389
- en: string;
8390
- zh: string;
8391
- };
8392
- BITRATE: {
8393
- en: string;
8394
- zh: string;
8395
- };
8396
- GOP: {
8397
- en: string;
8398
- zh: string;
8399
- };
8400
- RESOLUTION: {
8401
- en: string;
8402
- zh: string;
8403
- };
8404
- ENCODETYPE: {
8405
- en: string;
8406
- zh: string;
8407
- };
8408
- BUFFEREND: {
8409
- en: string;
8410
- zh: string;
8411
- };
8412
- CURRENTTIME: {
8413
- en: string;
8414
- zh: string;
8415
- };
8416
- };
8417
- _getDefaultInfo(data: any): Record<string, InfoItem>;
8418
- _init(): void;
8419
- _getStats(): any;
8420
- _getInfoListData(): Record<string, InfoItem>;
8421
- _initDom(infoItems: any): any;
8422
- _updateTitle(rowDom: Element, item: InfoItem): void;
8423
- _updateDom(rowdom: Element, newItem: InfoItem): void;
8424
- _renderLabel(item: InfoItem): any;
8425
- _renderValue(item: InfoItem): any;
8426
- _handleDataChange(): void;
8427
- _tick(): void;
8428
- _poll(): void;
8429
- destroy(): void;
8430
- _handleError(): void;
8431
- _handleLoadedData(): void;
8432
- _open(): void;
8433
- _close(): void;
8434
- open(): void;
8435
- close(): void;
8436
- render(): string;
8437
- }
8438
9257
  export declare const Events: {
8439
9258
  /** {zh}
8440
- * @brief 弹幕配置发生变化。
8441
- */
8442
- /** {en}
8443
- * @brief Triggered when danmu (bullet comment) configuration changes.
8444
- */
8445
- DANMU_CHANGE: string;
8446
- /** {zh}
8447
- * @hidden
8448
- */
8449
- /** {en}
8450
- * @hidden
8451
- */
8452
- TIME_SHIFT_CHANGE: string;
8453
- /** {zh}
8454
- * @hidden
8455
- */
8456
- /** {en}
8457
- * @hidden
8458
- */
8459
- AI_SUBTITLE_LANG_CHANGE: string;
8460
- /** {zh}
8461
- * @hidden
9259
+ * @brief 自动播放成功。
8462
9260
  */
8463
9261
  /** {en}
8464
- * @hidden
9262
+ * @brief Triggered when autoplay succeeds.
8465
9263
  */
8466
- AI_SUBTITLE_MATCH: string;
9264
+ AUTOPLAY_SUCCESS: string;
8467
9265
  /** {zh}
8468
- * @brief 取消静音。
9266
+ * @brief 自动播放失败。
8469
9267
  */
8470
9268
  /** {en}
8471
- * @brief Triggered when unmute is cancelled.
9269
+ * @brief Triggered when autoplay fails.
8472
9270
  */
8473
- CANCEL_UNMUTE: string;
9271
+ AUTOPLAY_FAILED: string;
8474
9272
  /** {zh}
8475
- * @brief 刷新按钮被点击。
9273
+ * @brief 右键菜单事件。事件 `data` 中包含具体信息。
8476
9274
  */
8477
9275
  /** {en}
8478
- * @brief Triggered when the refresh button is clicked.
9276
+ * @brief Triggered for context menu actions. Event `data` contains details.
8479
9277
  */
8480
- REFRESH_CLICK: string;
9278
+ MENU_LOG: string;
8481
9279
  /** {zh}
8482
- * @brief 报错时触发降级。
9280
+ * @brief 点击了右键菜单的反馈按钮。
8483
9281
  */
8484
9282
  /** {en}
8485
- * @brief Triggered when playback demotes to a backup URL after an error.
9283
+ * @brief Triggered when the context menu feedback button is clicked.
8486
9284
  */
8487
- PLAY_BACKUP_CHANGE: string;
9285
+ MENU_REPORT: string;
8488
9286
  /** {zh}
8489
- * @brief 报错时触发的降级结束。
9287
+ * @brief 播放列表更新。
8490
9288
  */
8491
9289
  /** {en}
8492
- * @brief Triggered when error-triggered demotion finishes.
9290
+ * @brief Triggered when the playlist is updated.
8493
9291
  */
8494
- PLAY_BACKUP_CHANGE_FINISH: string;
9292
+ PLAY_LIST_CHANGE: string;
8495
9293
  /** {zh}
8496
- * @brief 报错时触发重试。
9294
+ * @brief 播放列表播放项变更。
8497
9295
  */
8498
9296
  /** {en}
8499
- * @brief Triggered when the error retry button is clicked.
9297
+ * @brief Triggered when the current playlist item changes.
8500
9298
  */
8501
- PLAY_ERROR_BUTTON_CLICK: string;
9299
+ PLAY_LIST_ITEM_CHANGE: string;
8502
9300
  /** {zh}
8503
- * @brief 播放 URL 改变。
9301
+ * @brief `playNext` 开始。
8504
9302
  */
8505
9303
  /** {en}
8506
- * @brief Triggered when the playback URL changes.
9304
+ * @brief Triggered when `playNext` starts.
8507
9305
  */
8508
- PlAY_URL_CHANGE: string;
9306
+ PLAY_NEXT_START: string;
8509
9307
  /** {zh}
8510
- * @brief 展示报错。
9308
+ * @brief `playNext` 结束。
8511
9309
  */
8512
9310
  /** {en}
8513
- * @brief Triggered when the error UI is shown.
9311
+ * @brief Triggered when `playNext` ends.
8514
9312
  */
8515
- SHOW_PLAY_ERROR: string;
9313
+ PLAY_NEXT_END: string;
8516
9314
  /** {zh}
8517
- * @hidden
9315
+ * @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
8518
9316
  */
8519
9317
  /** {en}
8520
- * @hidden
9318
+ * @brief Triggered when the actual definition behind the auto ABR level changes.
8521
9319
  */
8522
- PLAYER_EXTEND_BUTTON: string;
9320
+ ABR_AUTO_DESC_CHANGE: string;
8523
9321
  /** {zh}
8524
- * @brief 发生长时间卡顿时触发。播放器会在事件发生时自动进行清晰度降级或提醒用户手动切换晰度降级。
9322
+ * @brief 播放插件内核的扩展事件
8525
9323
  */
8526
9324
  /** {en}
8527
- * @brief Triggered on prolonged stalling. The player may auto-demote definition or prompt the user to switch manually.
9325
+ * @brief Extension events from the playback plugin core.
8528
9326
  */
8529
- LONG_WAITING: string;
9327
+ CORE_EVENT: string;
8530
9328
  /** {zh}
8531
- * @brief 发生频繁卡顿时触发。
9329
+ * @brief mp4 加密插件命中预加载数据时触发。data 为预加载缓存对象,含 `byteLength`、`duration`、`mediaSegList` 等字段。
8532
9330
  */
8533
9331
  /** {en}
8534
- * @brief Triggered on frequent stalling.
9332
+ * @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`.
8535
9333
  */
8536
- OFTEN_WAITING: string;
9334
+ PRELOAD_INFO: string;
9335
+ TIME_SCALE_CHANGE?: string;
9336
+ MUSIC_MODE_CHANGE?: string;
9337
+ MUSIC_CHANGE?: string;
9338
+ MUSIC_LIST_CHANGE?: string;
8537
9339
  /** {zh}
8538
- * @brief 清晰度降级。
9340
+ * @brief 弹幕配置发生变化。
8539
9341
  */
8540
9342
  /** {en}
8541
- * @brief Triggered when definition is demoted.
9343
+ * @brief Triggered when danmu (bullet comment) configuration changes.
8542
9344
  */
8543
- DEFINITION_DEMOTE: string;
9345
+ DANMU_CHANGE: string;
8544
9346
  /** {zh}
8545
9347
  * @hidden
8546
9348
  */
8547
9349
  /** {en}
8548
9350
  * @hidden
8549
9351
  */
8550
- LARKWINDOW_CHANGE: string;
9352
+ TIME_SHIFT_CHANGE: string;
8551
9353
  /** {zh}
8552
9354
  * @hidden
8553
9355
  */
8554
9356
  /** {en}
8555
9357
  * @hidden
8556
9358
  */
8557
- PANEL_MODE_CHANGE: string;
9359
+ AI_SUBTITLE_LANG_CHANGE: string;
8558
9360
  /** {zh}
8559
- * @brief 清晰度切换。
9361
+ * @hidden
8560
9362
  */
8561
9363
  /** {en}
8562
- * @brief Triggered when definition changes.
9364
+ * @hidden
8563
9365
  */
8564
- INNER_DEFINITION_CHANGE: string;
9366
+ AI_SUBTITLE_MATCH: string;
8565
9367
  /** {zh}
8566
- * @brief 线路切换。
9368
+ * @brief 取消静音。
8567
9369
  */
8568
9370
  /** {en}
8569
- * @brief Triggered when the CDN line (route) changes.
9371
+ * @brief Triggered when unmute is cancelled.
8570
9372
  */
8571
- LINE_CHANGE: string;
9373
+ CANCEL_UNMUTE: string;
8572
9374
  /** {zh}
8573
- * @brief 播放器通过 `playAuthToken` 获取 URL 失败。
9375
+ * @brief 刷新按钮被点击。
8574
9376
  */
8575
9377
  /** {en}
8576
- * @brief Triggered when fetching the URL via `playAuthToken` fails.
9378
+ * @brief Triggered when the refresh button is clicked.
8577
9379
  */
8578
- GET_PLAY_URL_ERR: string;
9380
+ REFRESH_CLICK: string;
8579
9381
  /** {zh}
8580
- * @brief 资源过期。
9382
+ * @brief 报错时触发降级。
8581
9383
  */
8582
9384
  /** {en}
8583
- * @brief Triggered when the media resource has expired.
9385
+ * @brief Triggered when playback demotes to a backup URL after an error.
8584
9386
  */
8585
- MEDIA_EXPIRED: string;
9387
+ PLAY_BACKUP_CHANGE: string;
8586
9388
  /** {zh}
8587
- * @brief 镜像开启。
9389
+ * @brief 报错时触发的降级结束。
8588
9390
  */
8589
9391
  /** {en}
8590
- * @brief Triggered when mirror mode is enabled.
9392
+ * @brief Triggered when error-triggered demotion finishes.
8591
9393
  */
8592
- MIRROR_CHANGE: string;
9394
+ PLAY_BACKUP_CHANGE_FINISH: string;
8593
9395
  /** {zh}
8594
- * @brief 音乐播放器快进或快退。
9396
+ * @brief 报错时触发重试。
8595
9397
  */
8596
9398
  /** {en}
8597
- * @brief Triggered when music playback seeks forward or backward.
9399
+ * @brief Triggered when the error retry button is clicked.
8598
9400
  */
8599
- TIME_SCALE_CHANGE: string;
9401
+ PLAY_ERROR_BUTTON_CLICK: string;
8600
9402
  /** {zh}
8601
- * @brief 音乐播放模式切换。
9403
+ * @brief 播放 URL 改变。
8602
9404
  */
8603
9405
  /** {en}
8604
- * @brief Triggered when music play mode changes.
9406
+ * @brief Triggered when the playback URL changes.
8605
9407
  */
8606
- MUSIC_MODE_CHANGE: string;
9408
+ PlAY_URL_CHANGE: string;
8607
9409
  /** {zh}
8608
- * @brief 音乐播放模式下切换音乐。
9410
+ * @brief 展示报错。
8609
9411
  */
8610
9412
  /** {en}
8611
- * @brief Triggered when switching tracks in music mode.
9413
+ * @brief Triggered when the error UI is shown.
8612
9414
  */
8613
- MUSIC_CHANGE: string;
9415
+ SHOW_PLAY_ERROR: string;
8614
9416
  /** {zh}
8615
- * @brief 音乐播放列表发生变化。
9417
+ * @hidden
8616
9418
  */
8617
9419
  /** {en}
8618
- * @brief Triggered when the music playlist changes.
9420
+ * @hidden
8619
9421
  */
8620
- MUSIC_LIST_CHANGE: string;
9422
+ PLAYER_EXTEND_BUTTON: string;
8621
9423
  /** {zh}
8622
- * @brief 自动播放成功。
9424
+ * @brief 发生长时间卡顿时触发。播放器会在事件发生时自动进行清晰度降级或提醒用户手动切换晰度降级。
8623
9425
  */
8624
9426
  /** {en}
8625
- * @brief Triggered when autoplay succeeds.
9427
+ * @brief Triggered on prolonged stalling. The player may auto-demote definition or prompt the user to switch manually.
8626
9428
  */
8627
- AUTOPLAY_SUCCESS: string;
9429
+ LONG_WAITING: string;
8628
9430
  /** {zh}
8629
- * @brief 自动播放失败。
9431
+ * @brief 发生频繁卡顿时触发。
8630
9432
  */
8631
9433
  /** {en}
8632
- * @brief Triggered when autoplay fails.
9434
+ * @brief Triggered on frequent stalling.
8633
9435
  */
8634
- AUTOPLAY_FAILED: string;
9436
+ OFTEN_WAITING: string;
8635
9437
  /** {zh}
8636
- * @brief 右键菜单事件。事件 `data` 中包含具体信息。
9438
+ * @brief 清晰度降级。
8637
9439
  */
8638
9440
  /** {en}
8639
- * @brief Triggered for context menu actions. Event `data` contains details.
9441
+ * @brief Triggered when definition is demoted.
8640
9442
  */
8641
- MENU_LOG: string;
9443
+ DEFINITION_DEMOTE: string;
8642
9444
  /** {zh}
8643
- * @brief 点击了右键菜单的反馈按钮。
9445
+ * @hidden
8644
9446
  */
8645
9447
  /** {en}
8646
- * @brief Triggered when the context menu feedback button is clicked.
9448
+ * @hidden
8647
9449
  */
8648
- MENU_REPORT: string;
9450
+ LARKWINDOW_CHANGE: string;
8649
9451
  /** {zh}
8650
- * @brief 播放列表更新。
9452
+ * @hidden
8651
9453
  */
8652
9454
  /** {en}
8653
- * @brief Triggered when the playlist is updated.
9455
+ * @hidden
8654
9456
  */
8655
- PLAY_LIST_CHANGE: string;
9457
+ PANEL_MODE_CHANGE: string;
8656
9458
  /** {zh}
8657
- * @brief 播放列表播放项变更。
9459
+ * @brief 清晰度切换。
8658
9460
  */
8659
9461
  /** {en}
8660
- * @brief Triggered when the current playlist item changes.
9462
+ * @brief Triggered when definition changes.
8661
9463
  */
8662
- PLAY_LIST_ITEM_CHANGE: string;
9464
+ INNER_DEFINITION_CHANGE: string;
8663
9465
  /** {zh}
8664
- * @brief `playNext` 开始。
9466
+ * @brief 线路切换。
8665
9467
  */
8666
9468
  /** {en}
8667
- * @brief Triggered when `playNext` starts.
9469
+ * @brief Triggered when the CDN line (route) changes.
8668
9470
  */
8669
- PLAY_NEXT_START: string;
9471
+ LINE_CHANGE: string;
8670
9472
  /** {zh}
8671
- * @brief `playNext` 结束。
9473
+ * @brief 播放器通过 `playAuthToken` 获取 URL 失败。
8672
9474
  */
8673
9475
  /** {en}
8674
- * @brief Triggered when `playNext` ends.
9476
+ * @brief Triggered when fetching the URL via `playAuthToken` fails.
8675
9477
  */
8676
- PLAY_NEXT_END: string;
9478
+ GET_PLAY_URL_ERR: string;
8677
9479
  /** {zh}
8678
- * @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
9480
+ * @brief 资源过期。
8679
9481
  */
8680
9482
  /** {en}
8681
- * @brief Triggered when the actual definition behind the auto ABR level changes.
9483
+ * @brief Triggered when the media resource has expired.
8682
9484
  */
8683
- ABR_AUTO_DESC_CHANGE: string;
9485
+ MEDIA_EXPIRED: string;
8684
9486
  /** {zh}
8685
- * @brief 播放插件内核的扩展事件
9487
+ * @brief 镜像开启。
8686
9488
  */
8687
9489
  /** {en}
8688
- * @brief Extension events from the playback plugin core.
9490
+ * @brief Triggered when mirror mode is enabled.
8689
9491
  */
8690
- CORE_EVENT: string;
9492
+ MIRROR_CHANGE: string;
8691
9493
  /** {zh}
8692
9494
  * @brief 播放器实例创建完成时触发。
8693
9495
  */
@@ -8844,6 +9646,10 @@ export declare const Events: {
8844
9646
  * @brief Triggered when autoplay fails.
8845
9647
  */
8846
9648
  AUTOPLAY_PREVENTED: string;
9649
+ /** {zh}
9650
+ * @brief 播放器准备创建。
9651
+ */
9652
+ READY_CREATE_PLAYER: string;
8847
9653
  /** {zh}
8848
9654
  * @brief 播放器完成创建。
8849
9655
  */
@@ -8851,6 +9657,13 @@ export declare const Events: {
8851
9657
  * @brief Triggered when player creation completes.
8852
9658
  */
8853
9659
  PLAYER_CREATED_FINISH: string;
9660
+ /** {zh}
9661
+ * @brief createPlayer 性能报告。与 `PLAYER_CREATED_FINISH` 几乎同时触发(略早)。
9662
+ */
9663
+ /** {en}
9664
+ * @brief createPlayer performance report. Fired almost at the same time as `PLAYER_CREATED_FINISH` (slightly earlier).
9665
+ */
9666
+ CREATE_PLAYER_PERF: string;
8854
9667
  /** {zh}
8855
9668
  * @brief 播放器重建。
8856
9669
  */
@@ -9278,6 +10091,10 @@ export declare const Event: {
9278
10091
  * @brief Triggered when autoplay fails.
9279
10092
  */
9280
10093
  AUTOPLAY_PREVENTED: string;
10094
+ /** {zh}
10095
+ * @brief 播放器准备创建。
10096
+ */
10097
+ READY_CREATE_PLAYER: string;
9281
10098
  /** {zh}
9282
10099
  * @brief 播放器完成创建。
9283
10100
  */
@@ -9285,6 +10102,13 @@ export declare const Event: {
9285
10102
  * @brief Triggered when player creation completes.
9286
10103
  */
9287
10104
  PLAYER_CREATED_FINISH: string;
10105
+ /** {zh}
10106
+ * @brief createPlayer 性能报告。与 `PLAYER_CREATED_FINISH` 几乎同时触发(略早)。
10107
+ */
10108
+ /** {en}
10109
+ * @brief createPlayer performance report. Fired almost at the same time as `PLAYER_CREATED_FINISH` (slightly earlier).
10110
+ */
10111
+ CREATE_PLAYER_PERF: string;
9288
10112
  /** {zh}
9289
10113
  * @brief 播放器重建。
9290
10114
  */
@@ -9392,6 +10216,87 @@ export declare const Event: {
9392
10216
  AUDIO_TRACK_CHANGE: string;
9393
10217
  };
9394
10218
  PluginEvents: {
10219
+ /** {zh}
10220
+ * @brief 自动播放成功。
10221
+ */
10222
+ /** {en}
10223
+ * @brief Triggered when autoplay succeeds.
10224
+ */
10225
+ AUTOPLAY_SUCCESS: string;
10226
+ /** {zh}
10227
+ * @brief 自动播放失败。
10228
+ */
10229
+ /** {en}
10230
+ * @brief Triggered when autoplay fails.
10231
+ */
10232
+ AUTOPLAY_FAILED: string;
10233
+ /** {zh}
10234
+ * @brief 右键菜单事件。事件 `data` 中包含具体信息。
10235
+ */
10236
+ /** {en}
10237
+ * @brief Triggered for context menu actions. Event `data` contains details.
10238
+ */
10239
+ MENU_LOG: string;
10240
+ /** {zh}
10241
+ * @brief 点击了右键菜单的反馈按钮。
10242
+ */
10243
+ /** {en}
10244
+ * @brief Triggered when the context menu feedback button is clicked.
10245
+ */
10246
+ MENU_REPORT: string;
10247
+ /** {zh}
10248
+ * @brief 播放列表更新。
10249
+ */
10250
+ /** {en}
10251
+ * @brief Triggered when the playlist is updated.
10252
+ */
10253
+ PLAY_LIST_CHANGE: string;
10254
+ /** {zh}
10255
+ * @brief 播放列表播放项变更。
10256
+ */
10257
+ /** {en}
10258
+ * @brief Triggered when the current playlist item changes.
10259
+ */
10260
+ PLAY_LIST_ITEM_CHANGE: string;
10261
+ /** {zh}
10262
+ * @brief `playNext` 开始。
10263
+ */
10264
+ /** {en}
10265
+ * @brief Triggered when `playNext` starts.
10266
+ */
10267
+ PLAY_NEXT_START: string;
10268
+ /** {zh}
10269
+ * @brief `playNext` 结束。
10270
+ */
10271
+ /** {en}
10272
+ * @brief Triggered when `playNext` ends.
10273
+ */
10274
+ PLAY_NEXT_END: string;
10275
+ /** {zh}
10276
+ * @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
10277
+ */
10278
+ /** {en}
10279
+ * @brief Triggered when the actual definition behind the auto ABR level changes.
10280
+ */
10281
+ ABR_AUTO_DESC_CHANGE: string;
10282
+ /** {zh}
10283
+ * @brief 播放插件内核的扩展事件
10284
+ */
10285
+ /** {en}
10286
+ * @brief Extension events from the playback plugin core.
10287
+ */
10288
+ CORE_EVENT: string;
10289
+ /** {zh}
10290
+ * @brief mp4 加密插件命中预加载数据时触发。data 为预加载缓存对象,含 `byteLength`、`duration`、`mediaSegList` 等字段。
10291
+ */
10292
+ /** {en}
10293
+ * @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`.
10294
+ */
10295
+ PRELOAD_INFO: string;
10296
+ TIME_SCALE_CHANGE?: string;
10297
+ MUSIC_MODE_CHANGE?: string;
10298
+ MUSIC_CHANGE?: string;
10299
+ MUSIC_LIST_CHANGE?: string;
9395
10300
  /** {zh}
9396
10301
  * @brief 弹幕配置发生变化。
9397
10302
  */
@@ -9546,110 +10451,11 @@ export declare const Event: {
9546
10451
  * @brief Triggered when mirror mode is enabled.
9547
10452
  */
9548
10453
  MIRROR_CHANGE: string;
9549
- /** {zh}
9550
- * @brief 音乐播放器快进或快退。
9551
- */
9552
- /** {en}
9553
- * @brief Triggered when music playback seeks forward or backward.
9554
- */
9555
- TIME_SCALE_CHANGE: string;
9556
- /** {zh}
9557
- * @brief 音乐播放模式切换。
9558
- */
9559
- /** {en}
9560
- * @brief Triggered when music play mode changes.
9561
- */
9562
- MUSIC_MODE_CHANGE: string;
9563
- /** {zh}
9564
- * @brief 音乐播放模式下切换音乐。
9565
- */
9566
- /** {en}
9567
- * @brief Triggered when switching tracks in music mode.
9568
- */
9569
- MUSIC_CHANGE: string;
9570
- /** {zh}
9571
- * @brief 音乐播放列表发生变化。
9572
- */
9573
- /** {en}
9574
- * @brief Triggered when the music playlist changes.
9575
- */
9576
- MUSIC_LIST_CHANGE: string;
9577
- /** {zh}
9578
- * @brief 自动播放成功。
9579
- */
9580
- /** {en}
9581
- * @brief Triggered when autoplay succeeds.
9582
- */
9583
- AUTOPLAY_SUCCESS: string;
9584
- /** {zh}
9585
- * @brief 自动播放失败。
9586
- */
9587
- /** {en}
9588
- * @brief Triggered when autoplay fails.
9589
- */
9590
- AUTOPLAY_FAILED: string;
9591
- /** {zh}
9592
- * @brief 右键菜单事件。事件 `data` 中包含具体信息。
9593
- */
9594
- /** {en}
9595
- * @brief Triggered for context menu actions. Event `data` contains details.
9596
- */
9597
- MENU_LOG: string;
9598
- /** {zh}
9599
- * @brief 点击了右键菜单的反馈按钮。
9600
- */
9601
- /** {en}
9602
- * @brief Triggered when the context menu feedback button is clicked.
9603
- */
9604
- MENU_REPORT: string;
9605
- /** {zh}
9606
- * @brief 播放列表更新。
9607
- */
9608
- /** {en}
9609
- * @brief Triggered when the playlist is updated.
9610
- */
9611
- PLAY_LIST_CHANGE: string;
9612
- /** {zh}
9613
- * @brief 播放列表播放项变更。
9614
- */
9615
- /** {en}
9616
- * @brief Triggered when the current playlist item changes.
9617
- */
9618
- PLAY_LIST_ITEM_CHANGE: string;
9619
- /** {zh}
9620
- * @brief `playNext` 开始。
9621
- */
9622
- /** {en}
9623
- * @brief Triggered when `playNext` starts.
9624
- */
9625
- PLAY_NEXT_START: string;
9626
- /** {zh}
9627
- * @brief `playNext` 结束。
9628
- */
9629
- /** {en}
9630
- * @brief Triggered when `playNext` ends.
9631
- */
9632
- PLAY_NEXT_END: string;
9633
- /** {zh}
9634
- * @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
9635
- */
9636
- /** {en}
9637
- * @brief Triggered when the actual definition behind the auto ABR level changes.
9638
- */
9639
- ABR_AUTO_DESC_CHANGE: string;
9640
- /** {zh}
9641
- * @brief 播放插件内核的扩展事件
9642
- */
9643
- /** {en}
9644
- * @brief Extension events from the playback plugin core.
9645
- */
9646
- CORE_EVENT: string;
9647
10454
  };
9648
10455
  };
9649
10456
  export * from "xgplayer";
9650
10457
 
9651
10458
  export {
9652
- LiveSubTitlesPlugin as LiveSubtitlesPlugin,
9653
10459
  MusicPreset as Music,
9654
10460
  VePlayer as default,
9655
10461
  };