@volcengine/veplayer 1.17.0-rc.1 → 1.17.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +91 -39
- package/index.min.js +2 -2
- package/package.json +1 -1
- package/plugin/hlsEncrypt.js +2 -2
- package/plugin/hlsjsPro.js +2 -2
package/index.d.ts
CHANGED
|
@@ -897,6 +897,35 @@ export declare class DefinitionDemotePlugin extends Plugin {
|
|
|
897
897
|
showToast(definition: Stream): void;
|
|
898
898
|
destroy(): void;
|
|
899
899
|
}
|
|
900
|
+
/**
|
|
901
|
+
* 音轨选择选项。
|
|
902
|
+
* 对应 hls.js `AudioSelectionOption` 的所有字段,所有字段均可选。
|
|
903
|
+
* 用于 `switchAudioTrack()` 参数(配合 `id` 使用)以及 `audioPreference` 配置。
|
|
904
|
+
*/
|
|
905
|
+
export interface AudioTrackOption {
|
|
906
|
+
lang?: string;
|
|
907
|
+
assocLang?: string;
|
|
908
|
+
characteristics?: string;
|
|
909
|
+
channels?: string;
|
|
910
|
+
name?: string;
|
|
911
|
+
audioCodec?: string;
|
|
912
|
+
groupId?: string;
|
|
913
|
+
default?: boolean;
|
|
914
|
+
[key: string]: unknown;
|
|
915
|
+
}
|
|
916
|
+
export interface AudioTrack extends AudioTrackOption {
|
|
917
|
+
id: number;
|
|
918
|
+
name: string;
|
|
919
|
+
default: boolean;
|
|
920
|
+
}
|
|
921
|
+
/**
|
|
922
|
+
* `getAudioTracks()` / `getCurrentAudioTrack()` 的返回项类型。
|
|
923
|
+
* 是 `switchAudioTrack()` 参数类型的子类型,可直接传入。
|
|
924
|
+
*/
|
|
925
|
+
export interface AudioTrackInfo extends AudioTrack {
|
|
926
|
+
/** 是否为当前激活轨道。`getCurrentAudioTrack()` 返回时始终为 `true`。 */
|
|
927
|
+
selected: boolean;
|
|
928
|
+
}
|
|
900
929
|
export interface IAudioTrackConfig {
|
|
901
930
|
/** 控件在控制栏中的排列顺序,数值越小越靠左。@default 5 */
|
|
902
931
|
index?: number;
|
|
@@ -904,12 +933,16 @@ export interface IAudioTrackConfig {
|
|
|
904
933
|
isShowIcon?: boolean;
|
|
905
934
|
/** 竖屏时是否隐藏控件。@default false */
|
|
906
935
|
hidePortrait?: boolean;
|
|
936
|
+
/** 音轨列表中是否在语言名称后显示括号内的原始轨道名,如 `日本語 (Stereo AudioTrack1)`。@default true */
|
|
937
|
+
showNameSuffix?: boolean;
|
|
907
938
|
}
|
|
908
939
|
export interface IAudioTrackMobileConfig {
|
|
909
940
|
/** 控件在控制栏中的排列顺序,数值越小越靠左。@default 2.6 */
|
|
910
941
|
index?: number;
|
|
911
942
|
/** 是否显示图标按钮。@default true */
|
|
912
943
|
isShowIcon?: boolean;
|
|
944
|
+
/** 音轨列表中是否在语言名称后显示括号内的原始轨道名,如 `日本語 (Stereo AudioTrack1)`。@default true */
|
|
945
|
+
showNameSuffix?: boolean;
|
|
913
946
|
}
|
|
914
947
|
/**
|
|
915
948
|
* @brief DASH 播放配置。
|
|
@@ -3345,6 +3378,23 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3345
3378
|
* @default false
|
|
3346
3379
|
*/
|
|
3347
3380
|
enableHlsMSE?: boolean;
|
|
3381
|
+
/** {zh}
|
|
3382
|
+
* @brief 移动端播放 HLS 时优先使用 hls.js 插件(MSE/MMS):
|
|
3383
|
+
* - **Android**:直接启用 hls.js 播放。
|
|
3384
|
+
* - **iOS**:仅在设备支持 `ManagedMediaSource`(iOS 17.1+,即 `VePlayer.isMMSSupported()` 为 `true`)时启用;
|
|
3385
|
+
* 不满足时自动回退至原生 HLS 播放。
|
|
3386
|
+
* 开启后可在移动端解锁多音轨切换、`setAudioOption` 偏好持久化等 hls.js 特有能力。
|
|
3387
|
+
* @default false
|
|
3388
|
+
*/
|
|
3389
|
+
/** {en}
|
|
3390
|
+
* @brief Prefer hls.js (MSE/MMS) for HLS playback on mobile:
|
|
3391
|
+
* - **Android**: always enables hls.js.
|
|
3392
|
+
* - **iOS**: enables hls.js only when `ManagedMediaSource` is supported (iOS 17.1+,
|
|
3393
|
+
* i.e. `VePlayer.isMMSSupported()` returns `true`); falls back to native HLS otherwise.
|
|
3394
|
+
* Unlocks hls.js-specific features such as multi-audio-track switching on mobile.
|
|
3395
|
+
* @default false
|
|
3396
|
+
*/
|
|
3397
|
+
enableMobileHlsPlugin?: boolean;
|
|
3348
3398
|
/** {zh}
|
|
3349
3399
|
* @brief 是否启用 {@link https://hlsjs.video-dev.org/ hls.js} 插件播放HLS视频,默认为true,设置为false后,PC端播放HLS使用自研hls插件播放HLS视频
|
|
3350
3400
|
* @default true
|
|
@@ -3393,16 +3443,19 @@ export interface IPlayerConfig extends IPlayerOptions {
|
|
|
3393
3443
|
*/
|
|
3394
3444
|
defaultDefinition?: string;
|
|
3395
3445
|
/** {zh}
|
|
3396
|
-
* @brief
|
|
3397
|
-
*
|
|
3398
|
-
*
|
|
3446
|
+
* @brief 起播默认音轨偏好。字段与 `switchAudioTrack()` 参数一致,按需填写一个或多个字段进行匹配。
|
|
3447
|
+
* hls.js 路径下通过 `hls.setAudioOption()` 应用,支持跨清晰度自动持久化;
|
|
3448
|
+
* iOS 原生路径按 `lang` 字段匹配。未匹配到时沿用 manifest 默认轨道。
|
|
3399
3449
|
* @default -
|
|
3400
3450
|
*/
|
|
3401
3451
|
/** {en}
|
|
3402
|
-
* @brief Default audio track
|
|
3452
|
+
* @brief Default audio track preference at playback start. Accepts the same fields as
|
|
3453
|
+
* `switchAudioTrack()`. Applied via `hls.setAudioOption()` on the hls.js path (persists
|
|
3454
|
+
* across quality switches); matched by `lang` on the iOS native path.
|
|
3455
|
+
* Falls back to the manifest default when no match is found.
|
|
3403
3456
|
* @default -
|
|
3404
3457
|
*/
|
|
3405
|
-
|
|
3458
|
+
audioPreference?: AudioTrackOption;
|
|
3406
3459
|
/** {zh}
|
|
3407
3460
|
* @brief 插件,可自行选择安装的插件,支持{@link https://h5player.bytedance.com/plugins/ 西瓜播放器插件}。
|
|
3408
3461
|
* @default -
|
|
@@ -5528,8 +5581,17 @@ declare class VePlayer {
|
|
|
5528
5581
|
* @memberof VePlayer
|
|
5529
5582
|
*/
|
|
5530
5583
|
private _emitter;
|
|
5531
|
-
/**
|
|
5532
|
-
private
|
|
5584
|
+
/** 最近一次用户选择的音轨,用于清晰度切换后通过 setAudioOption 恢复音轨 */
|
|
5585
|
+
private _lastSelectedAudioTrack;
|
|
5586
|
+
/**
|
|
5587
|
+
* `_applyAudioPreference` 发起恢复时置 true,hls.js 随后触发的 hlsAudioTrackSwitched
|
|
5588
|
+
* 属于自动切轨,不应覆盖 `_lastSelectedAudioTrack`;事件触发后自动清除。
|
|
5589
|
+
* 使用 timeout 兜底,防止 hls.js 未触发事件时标志永久残留。
|
|
5590
|
+
*/
|
|
5591
|
+
private _suppressAudioTrackMemory;
|
|
5592
|
+
private _suppressAudioTrackMemoryTimer;
|
|
5593
|
+
/** playNext 后置为 true,直到新视频首个 addtrack 到达前屏蔽旧视频 change 事件的干扰 */
|
|
5594
|
+
private _playNextPending;
|
|
5533
5595
|
/**
|
|
5534
5596
|
*
|
|
5535
5597
|
*
|
|
@@ -5954,10 +6016,12 @@ declare class VePlayer {
|
|
|
5954
6016
|
*/
|
|
5955
6017
|
/** @hidden 获取 HLS 实例(兼容加密和普通 HLS 插件) */
|
|
5956
6018
|
private _getHlsInstance;
|
|
5957
|
-
/** @hidden 在 HLS
|
|
5958
|
-
private
|
|
5959
|
-
|
|
5960
|
-
private
|
|
6019
|
+
/** @hidden 在 HLS 音轨列表就绪或清晰度切换后,恢复上次选中的音轨;找不到时应用 audioPreference 配置 */
|
|
6020
|
+
private _applyAudioPreference;
|
|
6021
|
+
private _setSuppressAudioTrackMemory;
|
|
6022
|
+
private _clearSuppressAudioTrackMemory;
|
|
6023
|
+
/** @hidden 在 native AudioTrackList 就绪后,恢复上次选中的音轨;找不到时 fallback 到 audioPreference */
|
|
6024
|
+
private _applyAudioPreferenceNative;
|
|
5961
6025
|
private _offPlayerEvents;
|
|
5962
6026
|
/** {zh}
|
|
5963
6027
|
* @hidden 切换插件展示
|
|
@@ -6101,46 +6165,34 @@ declare class VePlayer {
|
|
|
6101
6165
|
* @brief 获取音频轨道列表。HLS 流通过 hls.js 获取,iOS 原生播放通过 HTMLMediaElement.audioTracks 获取。
|
|
6102
6166
|
* @notes 每项包含 `id`、`name`、`lang`、`channels`、`default`、`selected` 字段;轨道数量 ≤ 1 时返回空数组。
|
|
6103
6167
|
*/
|
|
6104
|
-
getAudioTracks():
|
|
6105
|
-
id: string | number;
|
|
6106
|
-
name: string;
|
|
6107
|
-
lang?: string;
|
|
6108
|
-
channels?: string;
|
|
6109
|
-
default: boolean;
|
|
6110
|
-
selected: boolean;
|
|
6111
|
-
[key: string]: unknown;
|
|
6112
|
-
}>;
|
|
6168
|
+
getAudioTracks(): AudioTrackInfo[];
|
|
6113
6169
|
/** {zh}
|
|
6114
6170
|
* @brief 获取当前激活的音频轨道。
|
|
6115
6171
|
* @notes HLS 流通过 hls.js 获取,iOS 原生播放通过 HTMLMediaElement.audioTracks 获取;无激活轨道时返回 null。
|
|
6116
6172
|
*/
|
|
6117
|
-
getCurrentAudioTrack():
|
|
6118
|
-
id: string | number;
|
|
6119
|
-
name: string;
|
|
6120
|
-
lang?: string;
|
|
6121
|
-
channels?: string;
|
|
6122
|
-
default: boolean;
|
|
6123
|
-
selected: boolean;
|
|
6124
|
-
[key: string]: unknown;
|
|
6125
|
-
} | null;
|
|
6173
|
+
getCurrentAudioTrack(): AudioTrackInfo | null;
|
|
6126
6174
|
/** {zh}
|
|
6127
6175
|
* @brief 切换音频轨道。
|
|
6128
6176
|
* @param id 目标轨道的 id,可通过 `getAudioTracks()` 获取。
|
|
6177
|
+
* @param lang 目标轨道的语言代码(BCP-47)。若提供,则 id 与 lang 同时匹配时才执行切换,
|
|
6178
|
+
* 可用于 iOS 原生 audioTracks 中存在重复 id 的场景。
|
|
6129
6179
|
* @notes 切换完成后会触发 `Events.AUDIO_TRACK_CHANGE` 事件;
|
|
6130
6180
|
* 同时 PC 端和移动端音频轨道插件的选中状态会自动更新。
|
|
6131
6181
|
*/
|
|
6132
|
-
switchAudioTrack(
|
|
6182
|
+
switchAudioTrack(track: AudioTrackInfo): void;
|
|
6133
6183
|
/** {zh}
|
|
6134
|
-
* @brief
|
|
6135
|
-
* @
|
|
6136
|
-
*
|
|
6184
|
+
* @brief 当前播放器命中预加载的情况
|
|
6185
|
+
* @type {{
|
|
6186
|
+
* hit: number, // 0-未命中 1-命中
|
|
6187
|
+
* duration: 0, // 预加载时长
|
|
6188
|
+
* length: 0 // 预加载数据长度
|
|
6189
|
+
* }}
|
|
6137
6190
|
*/
|
|
6138
|
-
|
|
6139
|
-
|
|
6140
|
-
|
|
6141
|
-
|
|
6142
|
-
|
|
6143
|
-
get hitPreload(): boolean;
|
|
6191
|
+
get preLoadData(): {
|
|
6192
|
+
hit: number;
|
|
6193
|
+
duration?: number;
|
|
6194
|
+
length?: number;
|
|
6195
|
+
};
|
|
6144
6196
|
/** {zh}
|
|
6145
6197
|
* @brief 初始化多语言词典
|
|
6146
6198
|
*
|