@volcengine/veplayer 1.11.0-rc.1 → 1.11.0-rc.3

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 (3) hide show
  1. package/index.d.ts +104 -18
  2. package/index.min.js +2 -2
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -811,20 +811,46 @@ export interface ITextItem {
811
811
  */
812
812
  export interface IDefinitionDemotePlugin {
813
813
  /**
814
- * @brief 是否开启自动降级,取值如下:
814
+ * @brief 长卡顿情况下是否开启自动降级,取值如下:
815
815
  * - `false`:关闭自动降级。
816
816
  * - `true`:开启自动降级。
817
817
  * @default true
818
818
  *
819
819
  */
820
820
  /** {en}
821
- * @brief Is automatic downgrade enabled? The values are as follows:
821
+ * @brief Is automatic downgrade enabled for long waiting? The values are as follows:
822
822
  * - `false`: automatic downgrade is disabled.
823
823
  * - `true`: automatic downgrade is enabled.
824
824
  */
825
- isNeedAutoDemote?: boolean;
825
+ isNeedAutoDemoteWhenLongWaiting?: boolean;
826
+ /**
827
+ * @brief 频繁卡顿情况下是否开启自动降级,取值如下:
828
+ * - `false`:关闭自动降级。
829
+ * - `true`:开启自动降级。
830
+ * @default true
831
+ *
832
+ */
833
+ /** {en}
834
+ * @brief Is automatic downgrade enabled for often waiting? The values are as follows:
835
+ * - `false`: automatic downgrade is disabled.
836
+ * - `true`: automatic downgrade is enabled.
837
+ */
838
+ isNeedAutoDemoteWhenOftenWaiting?: boolean;
839
+ /**
840
+ * @brief 长卡顿情况下,当用户开启 fallbackUrl 降级(降级到备用线路) 时,优先降级清晰度还是 fallbackUrl,取值如下:
841
+ * - `false`:优先在同一个清晰度的所有 fallback 之间切换, 都有问题的情况下,再降低到下一个清晰度
842
+ * - `true`:优先降级清晰度, 清晰度降到最低之后,再在最后一个清晰度的 fallbackUrl 之间切换
843
+ * @default false
844
+ *
845
+ */
846
+ /** {en}
847
+ * @brief Is demote quality first? The values are as follows:
848
+ * - `false`: not demote quality first.
849
+ * - `true`: demote quality first.
850
+ */
851
+ shouldDemoteDefinitionFirstWhenLongWaiting?: boolean;
826
852
  /**
827
- * @brief 当用户开启 fallbackUrl 降级(降级到备用线路) 时,优先降级清晰度还是 fallbackUrl,取值如下:
853
+ * @brief 频繁卡顿情况下,当用户开启 fallbackUrl 降级(降级到备用线路) 时,优先降级清晰度还是 fallbackUrl,取值如下:
828
854
  * - `false`:优先在同一个清晰度的所有 fallback 之间切换, 都有问题的情况下,再降低到下一个清晰度
829
855
  * - `true`:优先降级清晰度, 清晰度降到最低之后,再在最后一个清晰度的 fallbackUrl 之间切换
830
856
  * @default false
@@ -835,9 +861,9 @@ export interface IDefinitionDemotePlugin {
835
861
  * - `false`: not demote quality first.
836
862
  * - `true`: demote quality first.
837
863
  */
838
- shouldDemoteDefinitionFirst?: boolean;
864
+ shouldDemoteDefinitionFirstWhenOftenWaiting?: boolean;
839
865
  /**
840
- * @brief 是否开启 fallbackUrl 降级:
866
+ * @brief 长卡顿情况下是否开启 fallbackUrl 降级:
841
867
  * - `false`:不尝试降级到备用线路。
842
868
  * - `true`:尝试降级到备用线路。
843
869
  * @default true
@@ -848,9 +874,22 @@ export interface IDefinitionDemotePlugin {
848
874
  * - `false`: not try to play fallbackUrl first.
849
875
  * - `true`: try to play fallbackUrl first before demote definition.
850
876
  */
851
- isNeedDemoteBack?: boolean;
877
+ isNeedDemoteBackWhenLongWaiting?: boolean;
852
878
  /**
853
- * @brief 是否允许回退到同清晰度不同线路的 fallbackurl:
879
+ * @brief 频繁卡顿情况下是否开启 fallbackUrl 降级:
880
+ * - `false`:不尝试降级到备用线路。
881
+ * - `true`:尝试降级到备用线路。
882
+ * @default true
883
+ *
884
+ */
885
+ /** {en}
886
+ * @brief Is automatic downgrade enabled? The values are as follows:
887
+ * - `false`: not try to play fallbackUrl first.
888
+ * - `true`: try to play fallbackUrl first before demote definition.
889
+ */
890
+ isNeedDemoteBackWhenOftenWaiting?: boolean;
891
+ /**
892
+ * @brief 长卡顿情况下是否允许回退到同清晰度不同线路的 fallbackurl:
854
893
  * - `false`:只能在当前 defintion 范围内 fallback。
855
894
  * - `true`:允许 fallback 相同清晰度,不同的线路的 fallbackurl。
856
895
  * @default true
@@ -861,7 +900,20 @@ export interface IDefinitionDemotePlugin {
861
900
  * - `false`: only demote in current definition line.
862
901
  * - `true`: allow demote to different line.
863
902
  */
864
- allowDemoteToDifferentLine?: boolean;
903
+ allowDemoteToDifferentLineWhenLongWaiting?: boolean;
904
+ /**
905
+ * @brief 频繁卡顿情况下是否允许回退到同清晰度不同线路的 fallbackurl:
906
+ * - `false`:只能在当前 defintion 范围内 fallback。
907
+ * - `true`:允许 fallback 相同清晰度,不同的线路的 fallbackurl。
908
+ * @default true
909
+ *
910
+ */
911
+ /** {en}
912
+ * @brief Is demote to different line enabled? The values are as follows:
913
+ * - `false`: only demote in current definition line.
914
+ * - `true`: allow demote to different line.
915
+ */
916
+ allowDemoteToDifferentLineWhenOftenWaiting?: boolean;
865
917
  /**
866
918
  * @brief 同一清晰度降级至 fallbackurl 的重试轮数。
867
919
  * @default 1
@@ -930,11 +982,25 @@ export interface IDefinitionDemotePlugin {
930
982
  * @brief 提醒降级的toast显示持续时间,单位ms
931
983
  */
932
984
  toastShowTime?: number;
985
+ /**
986
+ * @brief 记录清除时间阈值,单位为毫秒。
987
+ * @default 3 * 60 * 1000
988
+ */
989
+ /** {en}
990
+ * @brief Record clear time threshold, unit is ms.
991
+ */
992
+ clearRecordThreshold?: number;
993
+ }
994
+ declare enum FALLBACK_REASON {
995
+ LONG_STALL = "long_stall",
996
+ OFTEN_STALL = "often_stall",
997
+ ERROR = "error"
933
998
  }
934
999
  export declare class DefinitionDemotePlugin extends Plugin {
935
1000
  static get pluginName(): string;
936
1001
  waitings: number[];
937
1002
  timer: ReturnType<typeof setTimeout>;
1003
+ clearRecordTimer: ReturnType<typeof setTimeout>;
938
1004
  toastId: number;
939
1005
  longWaitingEmitTime: number;
940
1006
  waitingStartTime: number;
@@ -943,6 +1009,7 @@ export declare class DefinitionDemotePlugin extends Plugin {
943
1009
  retryTimes: number;
944
1010
  idx: number;
945
1011
  };
1012
+ isDemoting: boolean;
946
1013
  static get defaultConfig(): IDefinitionDemotePlugin;
947
1014
  constructor(args: any);
948
1015
  registerLanguageTexts(): {
@@ -961,14 +1028,21 @@ export declare class DefinitionDemotePlugin extends Plugin {
961
1028
  _time(): void;
962
1029
  _clearTime(): void;
963
1030
  clearState(): void;
964
- demote(): void;
965
- executeDemoteFallbackFirst(): void;
966
- executeDemoteDefinitionFirst(): void;
967
- getRetryListForCurrentDefinition(): any[];
968
- getRetryListForCurrentDefinitionAcrossAllLines(): any[];
1031
+ demote(reason: FALLBACK_REASON): void;
1032
+ executeDemoteFallbackFirst(reason: FALLBACK_REASON): void;
1033
+ executeDemoteDefinitionFirst(reason: FALLBACK_REASON): void;
1034
+ private _emitFallbackEventAndReportTea;
1035
+ getRetryListForCurrentDefinition(): {
1036
+ urls: any[];
1037
+ sources: (string | number)[];
1038
+ };
1039
+ getRetryListForCurrentDefinitionAcrossAllLines(): {
1040
+ urls: any[];
1041
+ sources: any[];
1042
+ };
969
1043
  resetTimes(): void;
970
- changeMainOrBackup(): boolean;
971
- changeUrl(url: Url): void;
1044
+ changeMainOrBackup(reason: FALLBACK_REASON): boolean;
1045
+ changeUrl(url: Url, source: string | number): void;
972
1046
  showToast(definition: Stream): void;
973
1047
  destroy(): void;
974
1048
  }
@@ -3580,7 +3654,7 @@ export interface IPlayAuthTokenConfig {
3580
3654
  */
3581
3655
  autoDemoteDefinition?: string;
3582
3656
  /** {zh}
3583
- * @brief 开启清晰度自动降级(`isNeedAutoDemote` 为 `true`)时的自动档位对应的多语言文案 key,取值对应 `languages` 字段中各语种的 `key`。
3657
+ * @brief 开启清晰度自动降级(`isNeedAutoDemoteWhenLongWaiting` 为 `true`)时的自动档位对应的多语言文案 key,取值对应 `languages` 字段中各语种的 `key`。
3584
3658
  * @notes 如果指定的清晰度,playAuthToken从服务端返回的清晰度列表中不存在该清晰度,则此参数无效。
3585
3659
  * @default -
3586
3660
  */
@@ -4381,6 +4455,7 @@ declare class PlayerData {
4381
4455
  * @param {number} lineId
4382
4456
  */
4383
4457
  getDefinitionListByLineId(lineId: number | string): Stream[];
4458
+ getDefinitionListForAllLines(): Stream[];
4384
4459
  /**
4385
4460
  * @description: 根据条件筛选符合条件的流list
4386
4461
  * @param {Condition} condition
@@ -4391,7 +4466,10 @@ declare class PlayerData {
4391
4466
  * @param {boolean} isDown 是否取下一级清晰度
4392
4467
  * @param {string[]} demotePriority 清晰度降级顺序
4393
4468
  */
4394
- getNextDefinition(isDown: boolean, demotePriority: string[]): Stream[];
4469
+ getNextDefinition(isDown: boolean, demotePriority: string[], allowDemoteToDifferentLine?: boolean): {
4470
+ urls: Stream[];
4471
+ lineId: string | number;
4472
+ };
4395
4473
  /**
4396
4474
  * 获取api map
4397
4475
  * @return { ApiMapConfig }
@@ -6159,6 +6237,10 @@ export declare const Events: {
6159
6237
  * @brief `<source>` 加载成功。
6160
6238
  */
6161
6239
  SOURCE_SUCCESS: string;
6240
+ /** {zh}
6241
+ * @brief 降级事件。
6242
+ */
6243
+ FALLBACK: string;
6162
6244
  /** {zh}
6163
6245
  * @brief 在播放被终止时触发。例如当播放中的视频重新开始播放。
6164
6246
  */
@@ -6478,6 +6560,10 @@ export declare const Event: {
6478
6560
  * @brief `<source>` 加载成功。
6479
6561
  */
6480
6562
  SOURCE_SUCCESS: string;
6563
+ /** {zh}
6564
+ * @brief 降级事件。
6565
+ */
6566
+ FALLBACK: string;
6481
6567
  };
6482
6568
  PluginEvents: {
6483
6569
  /** {zh}