@volcengine/veplayer 1.8.6-rc.16 → 1.8.6-rc.17

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 CHANGED
@@ -780,53 +780,81 @@ export interface ITextItem {
780
780
  /**
781
781
  * @brief 清晰度自动降级配置
782
782
  * @list Options
783
- * @hidden
784
- *
785
- * @export
786
- * @interface IDefinitionDemotePlugin
783
+ * @kind property
787
784
  */
788
785
  export interface IDefinitionDemotePlugin {
789
786
  /**
790
- * 超时重试次数
791
- * 默认:3
787
+ * @brief 是否自动触发降级
788
+ * @default true
792
789
  *
793
- * @type {number}
794
- * @memberof IDefinitionDemotePlugin
795
790
  */
796
- oftenWaitingCount?: number;
791
+ isNeedAutoDemote?: boolean;
797
792
  /**
798
- * 设置经常超时时间
799
- * 默认:5000
793
+ * @brief 降级顺序,按照数组 顺序依次降级,数组 中的元素与playList 中的 definition 相对应
794
+ * @default []
800
795
  *
801
- * @type {number}
796
+ * @type {string[]}
802
797
  * @memberof IDefinitionDemotePlugin
803
798
  */
804
- oftenWaitingTime?: number;
799
+ demotePriority?: string[];
805
800
  /**
806
- * 设置超时时间
807
- * 默认5000
801
+ * @brief 长时间卡顿的时间阈值,单位为ms。卡顿超过该值,即为长时间卡顿
802
+ * @default 5000
808
803
  *
809
- * @type {number}
810
- * @memberof IDefinitionDemotePlugin
811
804
  */
812
805
  longWaitingTime?: number;
813
806
  /**
814
- * 是否自动触发降级
815
- * 默认:false
807
+ * @brief 频繁卡顿的次数阈值。OftenWaitingTime 内卡顿次数大于等于阈值时,触发often_waiting事件,即表示发生了频繁卡顿
808
+ * @default 3
816
809
  *
817
- * @type {boolean}
818
- * @memberof IDefinitionDemotePlugin
819
810
  */
820
- isNeedAutoDemote?: boolean;
811
+ oftenWaitingCount?: number;
821
812
  /**
822
- *
823
- * 降级顺序,按照数组顺序依次降级,数字元素对应playList中的definition
824
- * 默认: ['uhd', 'hd', 'sd', 'ld', 'ao']
825
- *
826
- * @type {string[]}
827
- * @memberof IDefinitionDemotePlugin
813
+ * @brief 频繁卡顿的时间范围。OftenWaitingTime 内卡顿次数大于等于阈值时,触发often_waiting事件,即表示发生了频繁卡顿
814
+ * @default 5000
828
815
  */
829
- demotePriority?: string[];
816
+ oftenWaitingTime?: number;
817
+ /**
818
+ * @brief 卡顿时是否显示建议切换清晰度的提醒tips
819
+ * @default true
820
+ */
821
+ isNeedShowTips?: boolean;
822
+ /**
823
+ * @brief 提醒降级的toast显示持续时间,单位ms
824
+ * @default 3000
825
+ */
826
+ toastShowTime?: number;
827
+ }
828
+ export declare class DefinitionDemotePlugin extends Plugin {
829
+ static get pluginName(): string;
830
+ waitings: number[];
831
+ timer: ReturnType<typeof setTimeout>;
832
+ toastId: number;
833
+ longWaitingEmitTime: number;
834
+ waitingStartTime: number;
835
+ playerData: PlayerData;
836
+ static get defaultConfig(): IDefinitionDemotePlugin;
837
+ constructor(args: any);
838
+ registerLanguageTexts(): {
839
+ definition_demote_txt: {
840
+ jp: string;
841
+ en: string;
842
+ zh: string;
843
+ "zh-hk": string;
844
+ };
845
+ };
846
+ afterCreate(): void;
847
+ bindCtx(): void;
848
+ bindEvents(): void;
849
+ _waiting(): void;
850
+ _count(): void;
851
+ _time(): void;
852
+ _clearTime(): void;
853
+ clearState(): void;
854
+ demote(): void;
855
+ changeUrl(url: string): void;
856
+ showToast(definition: Stream): void;
857
+ destroy(): void;
830
858
  }
831
859
  /**
832
860
  * @brief DASH 播放配置。
@@ -1631,7 +1659,186 @@ export declare class PlayListPlugin extends Plugin {
1631
1659
  get disable(): boolean;
1632
1660
  render(): string;
1633
1661
  }
1634
- export interface IPlayInfoList {
1662
+ /**
1663
+ * @brief 动态水印配置。
1664
+ * @list Options
1665
+ * @kind property
1666
+ */
1667
+ /** {en}
1668
+ * @brief watermark config
1669
+ */
1670
+ export interface IWatermarkConfig {
1671
+ /**
1672
+ * @brief 是否开启水印
1673
+ * @default false
1674
+ */
1675
+ enable: boolean;
1676
+ /**
1677
+ * @brief 水印文案内容
1678
+ * @default -
1679
+ */
1680
+ content: string;
1681
+ /**
1682
+ * @brief 水印展示形式
1683
+ * - 0: 固定位置
1684
+ * - 1: 全屏滚动
1685
+ * - 2: 随机闪烁
1686
+ * @default 1
1687
+ */
1688
+ displayType: 0 | 1 | 2;
1689
+ /**
1690
+ * @brief 水印字体大小,number类型时单位为px,string类型需要携带单位
1691
+ * @default 12
1692
+ */
1693
+ fontSize: number | string;
1694
+ /**
1695
+ * @brief 水印字体颜色
1696
+ * @brief #FFFFFF
1697
+ */
1698
+ fontColor: string;
1699
+ /**
1700
+ * @brief 不透明度
1701
+ * @default 0.3
1702
+ */
1703
+ opacity: number;
1704
+ /**
1705
+ * @brief 水印闪烁速度
1706
+ * @default MODERATE
1707
+ * - MODERATE: 适中
1708
+ * - FAST: 较快
1709
+ * - SLOW: 较慢
1710
+ */
1711
+ tickerSpeed?: "SLOW" | "MODERATE" | "FAST";
1712
+ /**
1713
+ * @brief 水印字体类型
1714
+ * @default -
1715
+ */
1716
+ fontFamily?: string;
1717
+ /**
1718
+ * @brief 水印相对于播放容器顶部起始位置,单位px
1719
+ * @default 0
1720
+ */
1721
+ top?: number;
1722
+ /**
1723
+ * @brief 水印相对于播放容器左侧起始位置,单位px
1724
+ * @default 0
1725
+ */
1726
+ left?: number;
1727
+ /**
1728
+ * @brief 水印相对于播放容器底部起始位置,单位px
1729
+ * @default -
1730
+ */
1731
+ bottom?: number;
1732
+ /**
1733
+ * @brief 水印相对于播放容器右侧起始位置,单位px
1734
+ * @default -
1735
+ */
1736
+ right?: number;
1737
+ }
1738
+ export declare class DynamicWatermarkPlugin extends Plugin {
1739
+ private wm;
1740
+ static get pluginName(): string;
1741
+ static get defaultConfig(): IWatermarkConfig & {
1742
+ position: string;
1743
+ };
1744
+ constructor(props: any);
1745
+ afterCreate(): void;
1746
+ start(): void;
1747
+ pause(): void;
1748
+ resume(): void;
1749
+ resize(): void;
1750
+ _initWatermark(): void;
1751
+ destroy(): void;
1752
+ render(): string | HTMLElement;
1753
+ }
1754
+ declare class ToastPlugin extends Plugin {
1755
+ static get pluginName(): string;
1756
+ static get defaultConfig(): {
1757
+ index: number;
1758
+ };
1759
+ constructor(args: any);
1760
+ private toastNumber;
1761
+ private toastMaps;
1762
+ beforePlayerInit(): void;
1763
+ afterPlayerInit(): void;
1764
+ afterCreate(): void;
1765
+ destroy(): void;
1766
+ add(content: string | HTMLElement, duration?: number, isNeedCloseBt?: boolean): number;
1767
+ remove(id: number): void;
1768
+ renderToast(content: string | HTMLElement, isNeedCloseBt: any, id: any): HTMLElement;
1769
+ render(): string;
1770
+ }
1771
+ /** {zh}
1772
+ * @brief 记忆播放配置。
1773
+ * @kind property
1774
+ * @list Options
1775
+ * @interface IMemoryPlayConfig
1776
+ */
1777
+ export interface IMemoryPlayConfig {
1778
+ /** {zh}
1779
+ * @brief 存储标识id
1780
+ * @default options.vid || options.url
1781
+ *
1782
+ * @type {number | string}
1783
+ * @memberof IMemoryPlayConfig
1784
+ */
1785
+ memoryId: number | string;
1786
+ /** {zh}
1787
+ * @brief 设置时间函数
1788
+ * @default -
1789
+ *
1790
+ * @type {(id: number | string, time: number) => unknown}
1791
+ * @memberof IMemoryPlayConfig
1792
+ */
1793
+ saveTime?: (id: number | string, time: number) => unknown;
1794
+ /** {zh}
1795
+ * @brief 获取最后一次播放时间函数
1796
+ * @default -
1797
+ */
1798
+ getTime?: (id: number | string) => number | Promise<number>;
1799
+ /** {zh}
1800
+ * @brief 判断是否播放了最小时间阈值,即如果播的时长太小,则不算做播放过,存储的时间进度为0
1801
+ * @default 1
1802
+ */
1803
+ minStartTime?: number;
1804
+ /** {zh}
1805
+ * @brief 判断是否播放结束的最小时间阈值,即距离结束多少时间内算作播放结束,播放结束则不存储时间进度,且清空之前的进度为0
1806
+ * @default 1
1807
+ */
1808
+ minEndTime?: number;
1809
+ }
1810
+ export declare class MemoryPlay extends Plugin {
1811
+ static get pluginName(): string;
1812
+ static get defaultConfig(): IMemoryPlayConfig;
1813
+ startTime: number;
1814
+ saveTimeFun: (id: number | string, time: number) => unknown;
1815
+ getTimeFun: (id: number | string) => number | Promise<number>;
1816
+ memoryId: number | string;
1817
+ shouldShowToast: boolean;
1818
+ constructor(args: any);
1819
+ registerLanguageTexts(): {
1820
+ preText: {
1821
+ jp: string;
1822
+ en: string;
1823
+ zh: string;
1824
+ "zh-hk": string;
1825
+ };
1826
+ };
1827
+ children(): {
1828
+ toast: typeof ToastPlugin;
1829
+ };
1830
+ afterCreate(): void;
1831
+ beforePlayerInit(): Promise<void>;
1832
+ getTime(): Promise<void>;
1833
+ saveTime(): void;
1834
+ visibilitychangeCallback(): void;
1835
+ setSave(): void;
1836
+ showToast(): void;
1837
+ saveTimeByStorage(memoryId: string, time: number): void;
1838
+ getTimeByStorage(memoryId: string): string | 0;
1839
+ destroy(): void;
1840
+ }
1841
+ export interface IPlayInfoListItem {
1635
1842
  BackupPlayUrl: string;
1636
1843
  BackupUrlExpire: string;
1637
1844
  BarrageMaskOffset: string;
@@ -1813,7 +2020,7 @@ export interface IMusicConfig {
1813
2020
  * @export
1814
2021
  * @interface Stream
1815
2022
  */
1816
- export interface Stream extends Partial<IPlayInfoList> {
2023
+ export interface Stream extends Partial<IPlayInfoListItem> {
1817
2024
  /** {zh}
1818
2025
  * @type {('rtm' | 'flv' | 'mp4' | 'hls')}
1819
2026
  * @memberof IPlayerConfig
@@ -1837,6 +2044,12 @@ export interface Stream extends Partial<IPlayInfoList> {
1837
2044
  * @brief 清晰度 key
1838
2045
  */
1839
2046
  definition?: string;
2047
+ /** {zh}
2048
+ * @type {string}
2049
+ * @memberof Stream
2050
+ * @brief 映射清晰度 key
2051
+ */
2052
+ mapDefinition?: string;
1840
2053
  /** {zh}
1841
2054
  * @type {string}
1842
2055
  * @memberof Stream
@@ -1980,7 +2193,7 @@ export interface IPlayerConfig extends IPlayerOptions {
1980
2193
  */
1981
2194
  autoplay?: boolean;
1982
2195
  /** {zh}
1983
- * @brief 视频封面图片的 URL。
2196
+ * @brief 视频封面图配置。
1984
2197
  */
1985
2198
  poster?: string | IPoster;
1986
2199
  /** {zh}
@@ -2345,6 +2558,12 @@ export interface IPlayerConfig extends IPlayerOptions {
2345
2558
  * @default -
2346
2559
  */
2347
2560
  disableVodLogOptsCheck?: boolean;
2561
+ /** {zh}
2562
+ * @hidden
2563
+ * @brief 是否打开日志打印
2564
+ * @default false
2565
+ */
2566
+ debug?: boolean;
2348
2567
  /** {zh}
2349
2568
  * @brief 播放器报错信息。支持配置播放异常时显示的异常文案、图片以及是否提供刷新按钮等。
2350
2569
  * @default -
@@ -2364,7 +2583,6 @@ export interface IPlayerConfig extends IPlayerOptions {
2364
2583
  DanmuPlugin?: IDanmuConfig | boolean;
2365
2584
  /** {zh}
2366
2585
  * @brief 清晰度自动降级配置
2367
- * @hidden
2368
2586
  * @notes 需要先引入DefinitionDemotePlugin插件,plugins: [VePlayer.DefinitionDemotePlugin]
2369
2587
  */
2370
2588
  DefinitionDemotePlugin?: IDefinitionDemotePlugin;
@@ -2425,6 +2643,16 @@ export interface IPlayerConfig extends IPlayerOptions {
2425
2643
  * @brief 播放列表配置。
2426
2644
  */
2427
2645
  playListPlugin?: IPlayListConfig;
2646
+ /** {zh}
2647
+ * @brief 动态水印配置
2648
+ * @default -
2649
+ */
2650
+ dynamicwatermark?: IWatermarkConfig;
2651
+ /** {zh}
2652
+ * @brief 进度条预览缩略图配置
2653
+ * @default -
2654
+ */
2655
+ thumbnail?: IThumbnailConfig;
2428
2656
  }
2429
2657
  /** {zh}
2430
2658
  * @hidden
@@ -2603,6 +2831,18 @@ export interface IPlayAuthTokenConfig {
2603
2831
  * @default 1
2604
2832
  */
2605
2833
  retryCount?: number;
2834
+ /** {zh}
2835
+ * @brief 清晰度自动降级开启时的自动档位,对应{@link https://www.volcengine.com/docs/4/2918 GetPlayInfo}返回的Definition字段
2836
+ * @notice 如果指定的清晰度,playAuthToken从服务端返回的清晰度列表中不存在该清晰度,则此参数无效。
2837
+ * @default -
2838
+ */
2839
+ autoDemoteDefinition?: string;
2840
+ /** {zh}
2841
+ * @brief 清晰度自动降级开启时的自动档位对应的多语言文案key,即languages字段中对应语种的相应key
2842
+ * @notice 如果指定的清晰度,playAuthToken从服务端返回的清晰度列表中不存在该清晰度,则此参数无效。
2843
+ * @default -
2844
+ */
2845
+ autoDemoteDefinitionTextKey?: string;
2606
2846
  }
2607
2847
  /** {zh}
2608
2848
  * @list Options
@@ -2673,35 +2913,6 @@ export interface IAutoBitrateOptsConfig {
2673
2913
  */
2674
2914
  module?: any;
2675
2915
  }
2676
- /** {zh}
2677
- * @brief 记忆播放配置。
2678
- * @kind property
2679
- * @list Options
2680
- * @interface IMemoryPlayConfig
2681
- */
2682
- export interface IMemoryPlayConfig {
2683
- /** {zh}
2684
- * @brief 存储标识id
2685
- * @default options.vid || options.url
2686
- *
2687
- * @type {number | string}
2688
- * @memberof IMemoryPlayConfig
2689
- */
2690
- memoryId: number | string;
2691
- /** {zh}
2692
- * @brief 设置时间函数
2693
- * @default -
2694
- *
2695
- * @type {(id: number | string, time: number) => unknown}
2696
- * @memberof IMemoryPlayConfig
2697
- */
2698
- saveTime: (id: number | string, time: number) => unknown;
2699
- /** {zh}
2700
- * @brief 获取最后一次播放时间函数
2701
- * @default -
2702
- */
2703
- getTime: (id: number | string) => number | Promise<number>;
2704
- }
2705
2916
  /** {zh}
2706
2917
  * @brief 插件按钮位置
2707
2918
  */
@@ -2913,6 +3124,58 @@ export interface IPoster {
2913
3124
  */
2914
3125
  fillMode?: "fixWidth" | "fixHeight" | "cover" | "contain";
2915
3126
  }
3127
+ /** {zh}
3128
+ * @list Options
3129
+ * @brief 进度条预览缩略图配置
3130
+ * @kind property
3131
+ */
3132
+ export interface IThumbnailConfig {
3133
+ /** {zh}
3134
+ * @brief 雪碧图截图地址数组
3135
+ * @default -
3136
+ */
3137
+ urls: Array<string>;
3138
+ /** {zh}
3139
+ * @brief 雪碧图中小图总数目
3140
+ * @default -
3141
+ */
3142
+ pic_num: number;
3143
+ /** {zh}
3144
+ * @brief 雪碧图每张大图中小图列数
3145
+ * @default -
3146
+ */
3147
+ col: number;
3148
+ /** {zh}
3149
+ * @brief 雪碧图每张大图中小图行数
3150
+ * @default -
3151
+ */
3152
+ row: number;
3153
+ /** {zh}
3154
+ * @brief 雪碧图每张小图的高度
3155
+ * @default -
3156
+ */
3157
+ height?: number;
3158
+ /** {zh}
3159
+ * @brief 雪碧图每张小图的宽度
3160
+ * @default -
3161
+ */
3162
+ width?: number;
3163
+ /** {zh}
3164
+ * @brief 显示缩放比例
3165
+ * @default 1
3166
+ */
3167
+ scale?: 1;
3168
+ /** {zh}
3169
+ * @brief 额外添加在dom上的class
3170
+ * @default -
3171
+ */
3172
+ className?: string;
3173
+ /** {zh}
3174
+ * @brief 是否在竖屏的时候隐藏
3175
+ * @default false
3176
+ */
3177
+ hidePortrait?: false;
3178
+ }
2916
3179
  /**
2917
3180
  * @brief api map
2918
3181
  * @hidden
@@ -3039,9 +3302,10 @@ declare class PlayerData {
3039
3302
  getUrlList(condition: Condition): Stream[];
3040
3303
  /**
3041
3304
  * @description: 获取当期清晰的上一级清晰度或下一级清晰度
3042
- * @param {boolean} isDown
3305
+ * @param {boolean} isDown 是否取下一级清晰度
3306
+ * @param {string[]} demotePriority 清晰度降级顺序
3043
3307
  */
3044
- getNextDefinition(isDown: boolean, demotePriority: any): Stream[];
3308
+ getNextDefinition(isDown: boolean, demotePriority: string[]): Stream[];
3045
3309
  /**
3046
3310
  * 获取api map
3047
3311
  * @return { ApiMapConfig }
@@ -3180,7 +3444,7 @@ declare class VePlayer {
3180
3444
  * @type {*}
3181
3445
  * @memberof VePlayer
3182
3446
  */
3183
- mountingDom: any;
3447
+ mountingDom: Element;
3184
3448
  /** {zh}
3185
3449
  * @hidden
3186
3450
  *
@@ -4078,73 +4342,6 @@ export declare class Subtitle extends Plugin {
4078
4342
  destroy(): void;
4079
4343
  render(): string;
4080
4344
  }
4081
- export interface WatermarkConfig {
4082
- enable: boolean;
4083
- content: string;
4084
- displayType: 0 | 1 | 2;
4085
- fontSize: number | string;
4086
- fontColor: string;
4087
- opacity: number;
4088
- tickerSpeed?: "SLOW" | "MODERATE" | "FAST";
4089
- fontFamily?: string;
4090
- top?: number;
4091
- left?: number;
4092
- bottom?: number;
4093
- right?: number;
4094
- }
4095
- export declare class DynamicWatermarkPlugin extends Plugin {
4096
- private wm;
4097
- static get pluginName(): string;
4098
- static get defaultConfig(): WatermarkConfig & {
4099
- position: string;
4100
- };
4101
- constructor(props: any);
4102
- afterCreate(): void;
4103
- start(): void;
4104
- pause(): void;
4105
- resume(): void;
4106
- resize(): void;
4107
- _initWatermark(): void;
4108
- destroy(): void;
4109
- render(): string | HTMLElement;
4110
- }
4111
- export declare class DefinitionDemotePlugin extends Plugin {
4112
- static get pluginName(): string;
4113
- waitings: number[];
4114
- timer: any;
4115
- longWaitingEmitTime: number;
4116
- waitingStartTime: number;
4117
- playerData: any;
4118
- isNeedShowTips: boolean;
4119
- static get defaultConfig(): {
4120
- oftenWaitingCount: number;
4121
- oftenWaitingTime: number;
4122
- longWaitingTime: number;
4123
- isNeedAutoDemote: boolean;
4124
- demotePriority: any[];
4125
- };
4126
- constructor(args: any);
4127
- registerLanguageTexts(): {
4128
- definition_demote_txt: {
4129
- jp: string;
4130
- en: string;
4131
- zh: string;
4132
- "zh-hk": string;
4133
- };
4134
- };
4135
- afterCreate(): void;
4136
- bindCtx(): void;
4137
- bindEvents(): void;
4138
- _waiting(): void;
4139
- _count(): void;
4140
- _time(): void;
4141
- _clearTime(): void;
4142
- clearState(): void;
4143
- demote(): void;
4144
- changeUrl(url: any): void;
4145
- showToast(definition: any): void;
4146
- destroy(): void;
4147
- }
4148
4345
  export declare class TimeShiftPlugin extends Plugin {
4149
4346
  static get pluginName(): string;
4150
4347
  static get defaultConfig(): {
@@ -4257,56 +4454,6 @@ export declare class MirrorPlugin extends Plugin {
4257
4454
  destroy(): void;
4258
4455
  render(): string;
4259
4456
  }
4260
- declare class ToastPlugin extends Plugin {
4261
- static get pluginName(): string;
4262
- static get defaultConfig(): {
4263
- index: number;
4264
- };
4265
- constructor(args: any);
4266
- private toastNumber;
4267
- private toastMaps;
4268
- beforePlayerInit(): void;
4269
- afterPlayerInit(): void;
4270
- afterCreate(): void;
4271
- destroy(): void;
4272
- add(content: string | HTMLElement, duration?: number, isNeedCloseBt?: boolean): number;
4273
- remove(id: number): void;
4274
- renderToast(content: string | HTMLElement, isNeedCloseBt: any, id: any): HTMLElement;
4275
- render(): string;
4276
- }
4277
- export declare class MemoryPlay extends Plugin {
4278
- static get pluginName(): string;
4279
- static get defaultConfig(): {
4280
- getTime: any;
4281
- saveTime: any;
4282
- memoryId: string;
4283
- };
4284
- startTime: number;
4285
- saveTimeFun: (id: number | string, time: number) => unknown;
4286
- getTimeFun: (id: number | string) => number | Promise<number>;
4287
- memoryId: number | string;
4288
- canJump: boolean;
4289
- constructor(args: any);
4290
- registerLanguageTexts(): {
4291
- preText: {
4292
- jp: string;
4293
- en: string;
4294
- zh: string;
4295
- "zh-hk": string;
4296
- };
4297
- };
4298
- children(): {
4299
- toast: typeof ToastPlugin;
4300
- };
4301
- afterCreate(): void;
4302
- beforePlayerInit(): Promise<void>;
4303
- destroy(): void;
4304
- getTime(): Promise<void>;
4305
- setSave(): void;
4306
- showToast(): void;
4307
- saveTimeByStorage(memoryId: any, time: any): void;
4308
- getTimeByStorage(memoryId: any): string;
4309
- }
4310
4457
  export declare type InfoItem = {
4311
4458
  key: string;
4312
4459
  label: string;