@byteplus/veplayer 1.8.6 → 1.9.0-rc.1

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
@@ -5,7 +5,6 @@ import { VeStrategyH265Config } from '@volcengine/vestrategy-h265';
5
5
  import EventEmitter from 'eventemitter3';
6
6
  import Player from 'xgplayer';
7
7
  import { BasePlugin, I18N, IXGI18nText, Plugin } from 'xgplayer';
8
- import { IUrl } from 'xgplayer/es/defaultConfig';
9
8
 
10
9
  /**
11
10
  * @brief 插件按钮位置
@@ -781,81 +780,53 @@ export interface ITextItem {
781
780
  /**
782
781
  * @brief 清晰度自动降级配置
783
782
  * @list Options
784
- * @kind property
783
+ * @hidden
784
+ *
785
+ * @export
786
+ * @interface IDefinitionDemotePlugin
785
787
  */
786
788
  export interface IDefinitionDemotePlugin {
787
789
  /**
788
- * @brief 是否自动触发降级
789
- * @default true
790
+ * 超时重试次数
791
+ * 默认:3
790
792
  *
793
+ * @type {number}
794
+ * @memberof IDefinitionDemotePlugin
791
795
  */
792
- isNeedAutoDemote?: boolean;
796
+ oftenWaitingCount?: number;
793
797
  /**
794
- * @brief 降级顺序,按照数组 顺序依次降级,数组 中的元素与playList 中的 definition 相对应
795
- * @default []
798
+ * 设置经常超时时间
799
+ * 默认:5000
796
800
  *
797
- * @type {string[]}
801
+ * @type {number}
798
802
  * @memberof IDefinitionDemotePlugin
799
803
  */
800
- demotePriority?: string[];
804
+ oftenWaitingTime?: number;
801
805
  /**
802
- * @brief 长时间卡顿的时间阈值,单位为ms。卡顿超过该值,即为长时间卡顿
803
- * @default 5000
806
+ * 设置超时时间
807
+ * 默认5000
804
808
  *
809
+ * @type {number}
810
+ * @memberof IDefinitionDemotePlugin
805
811
  */
806
812
  longWaitingTime?: number;
807
813
  /**
808
- * @brief 频繁卡顿的次数阈值。OftenWaitingTime 内卡顿次数大于等于阈值时,触发often_waiting事件,即表示发生了频繁卡顿
809
- * @default 3
814
+ * 是否自动触发降级
815
+ * 默认:false
810
816
  *
817
+ * @type {boolean}
818
+ * @memberof IDefinitionDemotePlugin
811
819
  */
812
- oftenWaitingCount?: number;
813
- /**
814
- * @brief 频繁卡顿的时间范围。OftenWaitingTime 内卡顿次数大于等于阈值时,触发often_waiting事件,即表示发生了频繁卡顿
815
- * @default 5000
816
- */
817
- oftenWaitingTime?: number;
818
- /**
819
- * @brief 卡顿时是否显示建议切换清晰度的提醒tips
820
- * @default true
821
- */
822
- isNeedShowTips?: boolean;
820
+ isNeedAutoDemote?: boolean;
823
821
  /**
824
- * @brief 提醒降级的toast显示持续时间,单位ms
825
- * @default 3000
822
+ *
823
+ * 降级顺序,按照数组顺序依次降级,数字元素对应playList中的definition
824
+ * 默认: ['uhd', 'hd', 'sd', 'ld', 'ao']
825
+ *
826
+ * @type {string[]}
827
+ * @memberof IDefinitionDemotePlugin
826
828
  */
827
- toastShowTime?: number;
828
- }
829
- export declare class DefinitionDemotePlugin extends Plugin {
830
- static get pluginName(): string;
831
- waitings: number[];
832
- timer: ReturnType<typeof setTimeout>;
833
- toastId: number;
834
- longWaitingEmitTime: number;
835
- waitingStartTime: number;
836
- playerData: PlayerData;
837
- static get defaultConfig(): IDefinitionDemotePlugin;
838
- constructor(args: any);
839
- registerLanguageTexts(): {
840
- definition_demote_txt: {
841
- jp: string;
842
- en: string;
843
- zh: string;
844
- "zh-hk": string;
845
- };
846
- };
847
- afterCreate(): void;
848
- bindCtx(): void;
849
- bindEvents(): void;
850
- _waiting(): void;
851
- _count(): void;
852
- _time(): void;
853
- _clearTime(): void;
854
- clearState(): void;
855
- demote(): void;
856
- changeUrl(url: string): void;
857
- showToast(definition: Stream): void;
858
- destroy(): void;
829
+ demotePriority?: string[];
859
830
  }
860
831
  /**
861
832
  * @brief DASH 播放配置。
@@ -869,7 +840,7 @@ export interface IDashPluginConfig {
869
840
  /**
870
841
  * @brief 视频 ID。
871
842
  * @default -
872
- * @notes 播放加密视频时必选
843
+ * @notice 播放加密视频时必选
873
844
  */
874
845
  /** {en}
875
846
  * @brief 视频vid
@@ -1040,7 +1011,7 @@ export interface IVodLogOptsConfig {
1040
1011
  /**
1041
1012
  * @brief 用于识别单一用户的 ID,可在{@link https://www.volcengine.com/docs/4/75736#qoe-%E6%8C%87%E6%A0%87%E8%AF%B4%E6%98%8E QoE指标}中用于用户维度的筛选,也可以用于{@link https://www.volcengine.com/docs/4/106093 单点追查} 查找单用户的播放日志
1042
1013
  * 用户 ID 对应于单点追查功能的查询条件中的设备 ID 维度。如不设置用户 ID,VePlayer 将根据用户浏览器随机生成一个值,该值会在浏览器端缓存。
1043
- * @notes 强烈建议您使用与业务相关的用户 ID,以便在发生播放错误时通过{@link https://console.volcengine.com/vod/region:vod+cn-north-1/quality_control/SingleTracing/?Tab=play 点播控制台 > 质量平台 > 单点追查}功能排查故障。
1014
+ * @notice 强烈建议您使用与业务相关的用户 ID,以便在发生播放错误时通过{@link https://console.volcengine.com/vod/region:vod+cn-north-1/quality_control/SingleTracing/?Tab=play 点播控制台 > 质量平台 > 单点追查}功能排查故障。
1044
1015
  * @default -
1045
1016
  */
1046
1017
  line_user_id: string | number;
@@ -1052,7 +1023,7 @@ export interface IVodLogOptsConfig {
1052
1023
  vtype?: "MP4" | "HLS" | "DASH" | "FLV";
1053
1024
  /**
1054
1025
  * @brief 业务标签。对应于质量平台上的业务类型维度,其作用是区分业务中的不同场景,以便进行多维度分析。举例来说,假设您的应用中包含短视频和长视频两个场景,则可分别将 `tag` 设为 `short` 和 `long`。这样一来,您就能够在{@link https://www.volcengine.com/docs/4/120175 质量平台}上通过业务标签维度查询或过滤不同场景的数据。
1055
- * @notes 如需自定义配置 tag 值在点播控制台上的展示文案,请联系{@link https://www.volcengine.com/docs/4/108992#%E5%94%AE%E5%90%8E%E6%94%AF%E6%8C%81 技术支持}
1026
+ * @notice 如需自定义配置 tag 值在点播控制台上的展示文案,请联系{@link https://www.volcengine.com/docs/4/108992#%E5%94%AE%E5%90%8E%E6%94%AF%E6%8C%81 技术支持}
1056
1027
  * @default 普通视频
1057
1028
  */
1058
1029
  tag?: string;
@@ -1430,7 +1401,7 @@ export declare const enum TOGGLE_MODES {
1430
1401
  */
1431
1402
  export interface IPlayListItem {
1432
1403
  /**
1433
- * @notes `playAuthToken` 为空时,此参数必传。
1404
+ * @notice `playAuthToken` 为空时,此参数必传。
1434
1405
  * @default -
1435
1406
  * @listtip `playAuthToken` 为空时,此参数必传。
1436
1407
  * @brief 视频地址。
@@ -1439,7 +1410,7 @@ export interface IPlayListItem {
1439
1410
  */
1440
1411
  url?: string;
1441
1412
  /**
1442
- * @notes `url` 为空时,此参数必传。
1413
+ * @notice `url` 为空时,此参数必传。
1443
1414
  * @default -
1444
1415
  * @listtip `url` 为空时,此参数必传。
1445
1416
  * @brief 播放临时安全凭证,由业务的 AppServer 签发。
@@ -1512,7 +1483,7 @@ export interface IPlayListConfig {
1512
1483
  * - `rootRight`:播放器根节点右侧
1513
1484
  * - `rootTop`:播放器根节点顶部
1514
1485
  * - `root`:播放器根节点
1515
- * @notes 此参数同时影响“打开/关闭播放列表”和“播放下一个”两个按钮的位置。
1486
+ * @notice 此参数同时影响“打开/关闭播放列表”和“播放下一个”两个按钮的位置。
1516
1487
  * @default controlsLeft
1517
1488
  */
1518
1489
  /** {en}
@@ -1660,188 +1631,7 @@ export declare class PlayListPlugin extends Plugin {
1660
1631
  get disable(): boolean;
1661
1632
  render(): string;
1662
1633
  }
1663
- /**
1664
- * @brief 动态水印配置。
1665
- * @list Options
1666
- * @kind property
1667
- */
1668
- /** {en}
1669
- * @brief watermark config
1670
- */
1671
- export interface IWatermarkConfig {
1672
- /**
1673
- * @brief 是否开启水印
1674
- * @default false
1675
- */
1676
- enable: boolean;
1677
- /**
1678
- * @brief 水印文案内容
1679
- * @default -
1680
- */
1681
- content: string;
1682
- /**
1683
- * @brief 水印展示形式
1684
- * - 0: 固定位置
1685
- * - 1: 全屏滚动
1686
- * - 2: 随机闪烁
1687
- * @default 1
1688
- */
1689
- displayType: 0 | 1 | 2;
1690
- /**
1691
- * @brief 水印字体大小,number类型时单位为px,string类型需要携带单位
1692
- * @default 12
1693
- */
1694
- fontSize: number | string;
1695
- /**
1696
- * @brief 水印字体颜色
1697
- * @brief #FFFFFF
1698
- */
1699
- fontColor: string;
1700
- /**
1701
- * @brief 不透明度
1702
- * @default 0.3
1703
- */
1704
- opacity: number;
1705
- /**
1706
- * @brief 水印闪烁速度
1707
- * @default MODERATE
1708
- * - MODERATE: 适中
1709
- * - FAST: 较快
1710
- * - SLOW: 较慢
1711
- */
1712
- tickerSpeed?: "SLOW" | "MODERATE" | "FAST";
1713
- /**
1714
- * @brief 水印字体类型
1715
- * @default -
1716
- */
1717
- fontFamily?: string;
1718
- /**
1719
- * @brief 水印相对于播放容器顶部起始位置,单位px
1720
- * @default 0
1721
- */
1722
- top?: number;
1723
- /**
1724
- * @brief 水印相对于播放容器左侧起始位置,单位px
1725
- * @default 0
1726
- */
1727
- left?: number;
1728
- /**
1729
- * @brief 水印相对于播放容器底部起始位置,单位px
1730
- * @default -
1731
- */
1732
- bottom?: number;
1733
- /**
1734
- * @brief 水印相对于播放容器右侧起始位置,单位px
1735
- * @default -
1736
- */
1737
- right?: number;
1738
- }
1739
- export declare class DynamicWatermarkPlugin extends Plugin {
1740
- private wm;
1741
- static get pluginName(): string;
1742
- static get defaultConfig(): IWatermarkConfig & {
1743
- position: string;
1744
- };
1745
- constructor(props: any);
1746
- afterCreate(): void;
1747
- start(): void;
1748
- pause(): void;
1749
- resume(): void;
1750
- resize(): void;
1751
- _initWatermark(): void;
1752
- destroy(): void;
1753
- render(): string | HTMLElement;
1754
- }
1755
- declare class ToastPlugin extends Plugin {
1756
- static get pluginName(): string;
1757
- static get defaultConfig(): {
1758
- index: number;
1759
- };
1760
- constructor(args: any);
1761
- private toastNumber;
1762
- private toastMaps;
1763
- beforePlayerInit(): void;
1764
- afterPlayerInit(): void;
1765
- afterCreate(): void;
1766
- destroy(): void;
1767
- add(content: string | HTMLElement, duration?: number, isNeedCloseBt?: boolean): number;
1768
- remove(id: number): void;
1769
- renderToast(content: string | HTMLElement, isNeedCloseBt: any, id: any): HTMLElement;
1770
- render(): string;
1771
- }
1772
- /** {zh}
1773
- * @brief 记忆播放配置。
1774
- * @kind property
1775
- * @list Options
1776
- * @interface IMemoryPlayConfig
1777
- */
1778
- export interface IMemoryPlayConfig {
1779
- /** {zh}
1780
- * @brief 存储标识id
1781
- * @default 视频vid或视频地址(去除query参数)
1782
- *
1783
- * @type {number | string}
1784
- * @memberof IMemoryPlayConfig
1785
- */
1786
- memoryId: number | string;
1787
- /** {zh}
1788
- * @brief 设置存储记忆时间的回调函数
1789
- * @default -
1790
- * @param id 存储标识id,由SDK传入
1791
- * @param time 需要记忆的时间点
1792
- * @type {(id: number | string, time: number) => unknown}
1793
- * @memberof IMemoryPlayConfig
1794
- */
1795
- saveTime?: (id: number | string, time: number) => unknown;
1796
- /** {zh}
1797
- * @brief 获取最后一次播放时间的回调函数
1798
- * @param id 存储标识id,由SDK传入
1799
- * @default -
1800
- */
1801
- getTime?: (id: number | string) => number | Promise<number>;
1802
- /** {zh}
1803
- * @brief 判断是否播放了最小时间阈值,即如果播的时长太小,则不算做播放过,存储的时间进度为0
1804
- * @default 1
1805
- */
1806
- minStartTime?: number;
1807
- /** {zh}
1808
- * @brief 判断是否播放结束的最小时间阈值,即距离结束多少时间内算作播放结束,播放结束则不存储时间进度,且清空之前的进度为0
1809
- * @default 1
1810
- */
1811
- minEndTime?: number;
1812
- }
1813
- export declare class MemoryPlay extends Plugin {
1814
- static get pluginName(): string;
1815
- static get defaultConfig(): IMemoryPlayConfig;
1816
- startTime: number;
1817
- saveTimeFun: (id: number | string, time: number) => unknown;
1818
- getTimeFun: (id: number | string) => number | Promise<number>;
1819
- memoryId: number | string;
1820
- shouldShowToast: boolean;
1821
- constructor(args: any);
1822
- registerLanguageTexts(): {
1823
- preText: {
1824
- jp: string;
1825
- en: string;
1826
- zh: string;
1827
- "zh-hk": string;
1828
- };
1829
- };
1830
- children(): {
1831
- toast: typeof ToastPlugin;
1832
- };
1833
- afterCreate(): void;
1834
- beforePlayerInit(): Promise<void>;
1835
- getTime(): Promise<void>;
1836
- saveTime(): void;
1837
- visibilitychangeCallback(): void;
1838
- setSave(): void;
1839
- showToast(): void;
1840
- saveTimeByStorage(memoryId: string, time: number): void;
1841
- getTimeByStorage(memoryId: string): string | 0;
1842
- destroy(): void;
1843
- }
1844
- export interface IPlayInfoListItem {
1634
+ export interface IPlayInfoList {
1845
1635
  BackupPlayUrl: string;
1846
1636
  BackupUrlExpire: string;
1847
1637
  BarrageMaskOffset: string;
@@ -2023,7 +1813,7 @@ export interface IMusicConfig {
2023
1813
  * @export
2024
1814
  * @interface Stream
2025
1815
  */
2026
- export interface Stream extends Partial<IPlayInfoListItem> {
1816
+ export interface Stream extends Partial<IPlayInfoList> {
2027
1817
  /** {zh}
2028
1818
  * @type {('rtm' | 'flv' | 'mp4' | 'hls')}
2029
1819
  * @memberof IPlayerConfig
@@ -2047,13 +1837,6 @@ export interface Stream extends Partial<IPlayInfoListItem> {
2047
1837
  * @brief 清晰度 key
2048
1838
  */
2049
1839
  definition?: string;
2050
- /** {zh}
2051
- * @type {string}
2052
- * @memberof Stream
2053
- * @brief 映射清晰度 key,用于清晰度降级中设置自动档位实际对应的definition
2054
- * @default -
2055
- */
2056
- mapDefinition?: string;
2057
1840
  /** {zh}
2058
1841
  * @type {string}
2059
1842
  * @memberof Stream
@@ -2085,16 +1868,6 @@ export interface Stream extends Partial<IPlayInfoListItem> {
2085
1868
  * @brief 多语言词典中对应的 key。比如 `lineTextKey: LINE_ONE`。
2086
1869
  */
2087
1870
  lineTextKey?: string;
2088
- /**
2089
- * @brief 码流的平均码率
2090
- * @default -
2091
- */
2092
- bitrate?: number;
2093
- /**
2094
- * @brief 码流流畅播放需要的带宽
2095
- * @default -
2096
- */
2097
- bandwidth?: number;
2098
1871
  /** {zh}
2099
1872
  * @hidden
2100
1873
  */
@@ -2202,12 +1975,12 @@ export interface IPlayerConfig extends IPlayerOptions {
2202
1975
  * - `true`:是
2203
1976
  * - `false`:否
2204
1977
  * @default false
2205
- * @notes 受限制于浏览器策略,自动播放不一定能成功,取决于浏览器环境、用户行为、浏览器配置等,详细参考自动播放 @link https://www.volcengine.com/docs/4/68693#%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE
1978
+ * @notice 受限制于浏览器策略,自动播放不一定能成功,取决于浏览器环境、用户行为、浏览器配置等,详细参考自动播放 @link https://www.volcengine.com/docs/4/68693#%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE
2206
1979
  * @listtip 受限于浏览器策略,自动播放不一定能成功,取决于浏览器环境、用户行为、浏览器配置等。详情请参考[自动播放](https://www.volcengine.com/docs/4/68693#%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE)。
2207
1980
  */
2208
1981
  autoplay?: boolean;
2209
1982
  /** {zh}
2210
- * @brief 视频封面图配置。
1983
+ * @brief 视频封面图片的 URL。
2211
1984
  */
2212
1985
  poster?: string | IPoster;
2213
1986
  /** {zh}
@@ -2268,7 +2041,7 @@ export interface IPlayerConfig extends IPlayerOptions {
2268
2041
  * ```javascript
2269
2042
  * { zh: { PIP: '画中画' }, en: { PIP: 'pip' }}
2270
2043
  * ```
2271
- * @notes
2044
+ * @notice
2272
2045
  * @see 了解更多,请参见{@link https://www.volcengine.com/docs/6469/127529 默认词典}。
2273
2046
  * @listtip 了解更多,请参见[默认词典](https://www.volcengine.com/docs/6469/127529)。
2274
2047
  */
@@ -2278,7 +2051,7 @@ export interface IPlayerConfig extends IPlayerOptions {
2278
2051
  /** {zh}
2279
2052
  * @brief 画中画配置。
2280
2053
  * @default PC: {position: 'controlsRight', index: 2.5, showIcon: true}; mobile:false
2281
- * @notes 画中画功能由浏览器提供,如果本身浏览器不支持,即使有该配置也不显示画中画按钮
2054
+ * @notice 画中画功能由浏览器提供,如果本身浏览器不支持,即使有该配置也不显示画中画按钮
2282
2055
  * @listtip 画中画功能由浏览器提供。如果浏览器不支持,即使传入此配置也不会显示画中画按钮。
2283
2056
  */
2284
2057
  pip?: IPIPConfig | boolean;
@@ -2308,7 +2081,7 @@ export interface IPlayerConfig extends IPlayerOptions {
2308
2081
  definitionTextKey?: string;
2309
2082
  /** {zh}
2310
2083
  * @brief 视频编码格式。
2311
- * @notes 在已知视频编码方式的情况下推荐传入,以方便日志分析
2084
+ * @notice 在已知视频编码方式的情况下推荐传入,以方便日志分析
2312
2085
  * @listtip - 在已知视频编码方式的情况下推荐传入,以便日志分析。
2313
2086
  * - 在 `useSoftDecoding` 参数为 `true`(开启 H.265 兼容降级模式)时,建议传入,可提升软解初始效率。
2314
2087
  */
@@ -2316,7 +2089,7 @@ export interface IPlayerConfig extends IPlayerOptions {
2316
2089
  /** {zh}
2317
2090
  * @brief 点播服务所在区域,影响服务接口和日志上报
2318
2091
  * @default cn
2319
- * @notes 火山引擎海外区域播放时请填写'mya'
2092
+ * @notice 火山引擎海外区域播放时请填写'mya'
2320
2093
  * @hidden
2321
2094
  */
2322
2095
  /** {en}
@@ -2328,12 +2101,12 @@ export interface IPlayerConfig extends IPlayerOptions {
2328
2101
  /** {zh}
2329
2102
  * @brief 插件加载的路径。您可从 [SDK 离线包](https://www.volcengine.com/docs/4/67077#%E5%BC%95%E5%85%A5%E4%BE%9D%E8%B5%96)中获取插件,然后将插件文件放置于应用服务器上,再在初始化播放器时指定插件地址。
2330
2103
  * @default https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/@volcengine/veplayer/${version}/plugin
2331
- * @notes 可将插件文件夹置于业务方服务器上,指定插件的地址即可
2104
+ * @notice 可将插件文件夹置于业务方服务器上,指定插件的地址即可
2332
2105
  */
2333
2106
  /** {en}
2334
2107
  * @brief plug loading public path, used to specify the loading path of the plug-in, or the local file service to load the plug-in
2335
2108
  * @default https://sf-unpkg.bytepluscdn.com/obj/byteplusfe-sg/sdk/@byteplus/veplayer/${version}/plugin
2336
- * @notes can place the plug-in folder on the business server and specify the address of the plug-in.
2109
+ * @notice can place the plug-in folder on the business server and specify the address of the plug-in.
2337
2110
  */
2338
2111
  pluginPublicPath?: string;
2339
2112
  /**
@@ -2450,7 +2223,7 @@ export interface IPlayerConfig extends IPlayerOptions {
2450
2223
  enableMenu?: boolean;
2451
2224
  /** {zh}
2452
2225
  * @brief 是否开启 HLS 视频的 MSE 模式。仅移动端生效。默认情况下,在移动端使用原生`video 播放 HLS 视频。开启后,将采用 MSE 方式播放 HLS 视频,实现更好的兼容性、能控制缓存、节省流量。
2453
- * @notes 仅移动端生效,开启后采用MSE方式播放HLS,默认在移动端使用原生video播放hls
2226
+ * @notice 仅移动端生效,开启后采用MSE方式播放HLS,默认在移动端使用原生video播放hls
2454
2227
  */
2455
2228
  enableHlsMSE?: boolean;
2456
2229
  /** {zh}
@@ -2470,11 +2243,6 @@ export interface IPlayerConfig extends IPlayerOptions {
2470
2243
  * @default -
2471
2244
  */
2472
2245
  playList?: Stream[];
2473
- /** {zh}
2474
- * @brief 只传playList时,用于指定默认清晰度
2475
- * @default playList第一项
2476
- */
2477
- defaultDefinition?: string;
2478
2246
  /** {zh}
2479
2247
  * @brief 插件,可自行选择安装的插件,支持{@link https://h5player.bytedance.com/plugins/ 西瓜播放器插件}。
2480
2248
  * @default -
@@ -2518,7 +2286,7 @@ export interface IPlayerConfig extends IPlayerOptions {
2518
2286
  * })
2519
2287
  * ```
2520
2288
  * @default -
2521
- * @notes 插件可以从{@link https://www.volcengine.com/docs/4/67077 集成SDK} 章节中下载SDK离线包获取
2289
+ * @notice 插件可以从{@link https://www.volcengine.com/docs/4/67077 集成SDK} 章节中下载SDK离线包获取
2522
2290
  */
2523
2291
  umdUrlMap?: Record<string, string>;
2524
2292
  /**
@@ -2577,12 +2345,6 @@ export interface IPlayerConfig extends IPlayerOptions {
2577
2345
  * @default -
2578
2346
  */
2579
2347
  disableVodLogOptsCheck?: boolean;
2580
- /** {zh}
2581
- * @hidden
2582
- * @brief 是否打开日志打印
2583
- * @default false
2584
- */
2585
- debug?: boolean;
2586
2348
  /** {zh}
2587
2349
  * @brief 播放器报错信息。支持配置播放异常时显示的异常文案、图片以及是否提供刷新按钮等。
2588
2350
  * @default -
@@ -2602,6 +2364,7 @@ export interface IPlayerConfig extends IPlayerOptions {
2602
2364
  DanmuPlugin?: IDanmuConfig | boolean;
2603
2365
  /** {zh}
2604
2366
  * @brief 清晰度自动降级配置
2367
+ * @hidden
2605
2368
  * @notes 需要先引入DefinitionDemotePlugin插件,plugins: [VePlayer.DefinitionDemotePlugin]
2606
2369
  */
2607
2370
  DefinitionDemotePlugin?: IDefinitionDemotePlugin;
@@ -2662,16 +2425,6 @@ export interface IPlayerConfig extends IPlayerOptions {
2662
2425
  * @brief 播放列表配置。
2663
2426
  */
2664
2427
  playListPlugin?: IPlayListConfig;
2665
- /** {zh}
2666
- * @brief 动态水印配置
2667
- * @default -
2668
- */
2669
- dynamicwatermark?: IWatermarkConfig;
2670
- /** {zh}
2671
- * @brief 进度条预览缩略图配置
2672
- * @default -
2673
- */
2674
- thumbnail?: IThumbnailConfig;
2675
2428
  }
2676
2429
  /** {zh}
2677
2430
  * @hidden
@@ -2850,18 +2603,6 @@ export interface IPlayAuthTokenConfig {
2850
2603
  * @default 1
2851
2604
  */
2852
2605
  retryCount?: number;
2853
- /** {zh}
2854
- * @brief 清晰度自动降级开启时的自动档位,对应{@link https://www.volcengine.com/docs/4/2918 GetPlayInfo}返回的Definition字段
2855
- * @notes 如果指定的清晰度,playAuthToken从服务端返回的清晰度列表中不存在该清晰度,则此参数无效。
2856
- * @default -
2857
- */
2858
- autoDemoteDefinition?: string;
2859
- /** {zh}
2860
- * @brief 清晰度自动降级开启时的自动档位对应的多语言文案key,即languages字段中对应语种的相应key
2861
- * @notes 如果指定的清晰度,playAuthToken从服务端返回的清晰度列表中不存在该清晰度,则此参数无效。
2862
- * @default -
2863
- */
2864
- autoDemoteDefinitionTextKey?: string;
2865
2606
  }
2866
2607
  /** {zh}
2867
2608
  * @list Options
@@ -2932,6 +2673,35 @@ export interface IAutoBitrateOptsConfig {
2932
2673
  */
2933
2674
  module?: any;
2934
2675
  }
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
+ }
2935
2705
  /** {zh}
2936
2706
  * @brief 插件按钮位置
2937
2707
  */
@@ -3039,7 +2809,7 @@ export interface IFullscreenConfig {
3039
2809
  * - `false`:否。
3040
2810
  * - `true`:是,即全屏后,如在竖屏状态下,播放器会把 `dom` 旋转 90 度实现横屏效果。
3041
2811
  * @default false
3042
- * @notes
2812
+ * @notice
3043
2813
  * - 该配置优先于 `useCssFullscreen` 配置。
3044
2814
  * - 该配置一般在移动端使用。
3045
2815
  * @listtip - 该参数的优先级高于 `useCssFullscreen` 参数。
@@ -3064,7 +2834,7 @@ export interface IFullscreenConfig {
3064
2834
  * - `false`:不显示右上角返回按钮。
3065
2835
  * - `true`:显示右上角返回按钮。
3066
2836
  * @default false
3067
- * @notes 该配置一般在移动端开启
2837
+ * @notice 该配置一般在移动端开启
3068
2838
  * @listtip 此参数一般用于移动端。
3069
2839
  */
3070
2840
  needBackIcon?: boolean;
@@ -3143,58 +2913,6 @@ export interface IPoster {
3143
2913
  */
3144
2914
  fillMode?: "fixWidth" | "fixHeight" | "cover" | "contain";
3145
2915
  }
3146
- /** {zh}
3147
- * @list Options
3148
- * @brief 进度条预览缩略图配置
3149
- * @kind property
3150
- */
3151
- export interface IThumbnailConfig {
3152
- /** {zh}
3153
- * @brief 雪碧图截图地址数组
3154
- * @default -
3155
- */
3156
- urls: Array<string>;
3157
- /** {zh}
3158
- * @brief 雪碧图中小图总数目
3159
- * @default -
3160
- */
3161
- pic_num: number;
3162
- /** {zh}
3163
- * @brief 雪碧图每张大图中小图列数
3164
- * @default -
3165
- */
3166
- col: number;
3167
- /** {zh}
3168
- * @brief 雪碧图每张大图中小图行数
3169
- * @default -
3170
- */
3171
- row: number;
3172
- /** {zh}
3173
- * @brief 雪碧图每张小图的高度
3174
- * @default -
3175
- */
3176
- height?: number;
3177
- /** {zh}
3178
- * @brief 雪碧图每张小图的宽度
3179
- * @default -
3180
- */
3181
- width?: number;
3182
- /** {zh}
3183
- * @brief 显示缩放比例
3184
- * @default 1
3185
- */
3186
- scale?: 1;
3187
- /** {zh}
3188
- * @brief 额外添加在dom上的class
3189
- * @default -
3190
- */
3191
- className?: string;
3192
- /** {zh}
3193
- * @brief 是否在竖屏的时候隐藏
3194
- * @default false
3195
- */
3196
- hidePortrait?: false;
3197
- }
3198
2916
  /**
3199
2917
  * @brief api map
3200
2918
  * @hidden
@@ -3278,14 +2996,9 @@ declare class PlayerData {
3278
2996
  playDomainDegrade: boolean;
3279
2997
  strategiesPlugins: any[];
3280
2998
  strategiesPluginConfigs: any;
3281
- /**
3282
- * @brief direct-url播放模式时的默认清晰度
3283
- * @default playList第一项
3284
- */
3285
- defaultDefinition: string;
3286
2999
  constructor(configs: IPlayerConfig);
3287
- initPlayData(configs: IPlayerConfig): void;
3288
- initPlaylistAndGetCurrent(configs: IPlayerConfig): Stream;
3000
+ initPlayData(configs: any): void;
3001
+ initPlaylistAndGetCurrent(configs: IPlayerConfig): any;
3289
3002
  isCurrentH265(): boolean;
3290
3003
  getCurrentByDefaultConfig(): Stream;
3291
3004
  initCurrent(currentStreams: any): void;
@@ -3326,10 +3039,9 @@ declare class PlayerData {
3326
3039
  getUrlList(condition: Condition): Stream[];
3327
3040
  /**
3328
3041
  * @description: 获取当期清晰的上一级清晰度或下一级清晰度
3329
- * @param {boolean} isDown 是否取下一级清晰度
3330
- * @param {string[]} demotePriority 清晰度降级顺序
3042
+ * @param {boolean} isDown
3331
3043
  */
3332
- getNextDefinition(isDown: boolean, demotePriority: string[]): Stream[];
3044
+ getNextDefinition(isDown: boolean, demotePriority: any): Stream[];
3333
3045
  /**
3334
3046
  * 获取api map
3335
3047
  * @return { ApiMapConfig }
@@ -3389,7 +3101,8 @@ declare enum UmdKeys {
3389
3101
  DanmuMask = "danmuMask",
3390
3102
  StreamProbe = "streamprobe",
3391
3103
  VeStrategy = "vestrategy",
3392
- VeStrategyH265 = "vestrategy_h265"
3104
+ VeStrategyH265 = "vestrategy_h265",
3105
+ Preloader = "preloader"
3393
3106
  }
3394
3107
  /**
3395
3108
  * @hidden
@@ -3403,6 +3116,7 @@ export declare type UMDMap = Record<UmdKeys, {
3403
3116
  }>;
3404
3117
  declare class umdLoader {
3405
3118
  private static jsLoadMap;
3119
+ private static jsLoadPromiseMap;
3406
3120
  umdMap: UMDMap;
3407
3121
  backupUmdUrlMap: Record<string, string>;
3408
3122
  failCallback: (umdName: string, err: any) => any;
@@ -3435,6 +3149,91 @@ declare class umdLoader {
3435
3149
  */
3436
3150
  loadPlugins(pluginName: UmdKeys, successCallback?: () => void): Promise<any>;
3437
3151
  }
3152
+ export interface IPreloadConfig {
3153
+ preloadCacheType: 0 | 1;
3154
+ autoPreload: boolean;
3155
+ autoCheckPreload: boolean;
3156
+ autoCheck: {
3157
+ enable: boolean;
3158
+ interval: number;
3159
+ };
3160
+ preloadTime: number;
3161
+ segmentMinDuration: number;
3162
+ preloadMaxCacheCount: number;
3163
+ }
3164
+ export interface IPreloadConfigOptions extends IPreloadConfig {
3165
+ enableMp4: boolean;
3166
+ enableDash: boolean;
3167
+ enableDebugger: boolean;
3168
+ plugins: any[];
3169
+ }
3170
+ export interface IPreloadDataPayload {
3171
+ vid: string;
3172
+ vtype: string;
3173
+ codecType: string;
3174
+ payload: Array<{
3175
+ url: {
3176
+ src: string;
3177
+ }[];
3178
+ bitrate: number;
3179
+ duration: number;
3180
+ size: number;
3181
+ definition: string;
3182
+ }>;
3183
+ defaultDefinition?: string;
3184
+ duration?: number;
3185
+ mediaType?: string;
3186
+ bizType?: 0 | 1;
3187
+ }
3188
+ export interface IPreloadData {
3189
+ data: IPreloadDataPayload;
3190
+ order?: number;
3191
+ }
3192
+ declare class Preloader {
3193
+ private inst;
3194
+ private sdkUmdLoader;
3195
+ private registerPromise;
3196
+ constructor();
3197
+ static get defaultConfig(): {
3198
+ preloadCacheType: number;
3199
+ autoPreload: boolean;
3200
+ autoCheckPreload: boolean;
3201
+ autoCheck: {
3202
+ enable: boolean;
3203
+ interval: number;
3204
+ };
3205
+ preloadTime: number;
3206
+ isDegrade: boolean;
3207
+ waitingTimeOut: number;
3208
+ needAutoBitrate: boolean;
3209
+ startPreloadMinBuffer: number;
3210
+ startPreloadControl: boolean;
3211
+ maxBufferLength: number;
3212
+ minBufferLength: number;
3213
+ removeBufferLen: number;
3214
+ preloadMaxCacheCount: number;
3215
+ startPreloadMinPosTime: number;
3216
+ resumePlayWaterLevel: number;
3217
+ onProcessMinLen: number;
3218
+ needPreloadCheck: boolean;
3219
+ forceVideoPlay: boolean;
3220
+ segmentMinDuration: number;
3221
+ timerInWorker: boolean;
3222
+ tickInSeconds: number;
3223
+ fixEditListOffset: boolean;
3224
+ audioGroupingStrategy: number;
3225
+ noPreloadAddBufferLen: number;
3226
+ loadRangeType: string;
3227
+ };
3228
+ private initUmdLoader;
3229
+ private _register;
3230
+ register(config: Partial<IPreloadConfigOptions>): Promise<any>;
3231
+ addList(preloadList: IPreloadData[]): Promise<void>;
3232
+ updateConfig(config: Partial<IPreloadConfig>): Promise<void>;
3233
+ attachPlayer(player: any): Promise<void>;
3234
+ removeAll(): Promise<any>;
3235
+ removeAllPreloadTask(): Promise<any>;
3236
+ }
3438
3237
  /**
3439
3238
  * @hidden
3440
3239
  */
@@ -3468,7 +3267,7 @@ declare class VePlayer {
3468
3267
  * @type {*}
3469
3268
  * @memberof VePlayer
3470
3269
  */
3471
- mountingDom: Element;
3270
+ mountingDom: any;
3472
3271
  /** {zh}
3473
3272
  * @hidden
3474
3273
  *
@@ -3568,6 +3367,7 @@ declare class VePlayer {
3568
3367
  * @hidden
3569
3368
  */
3570
3369
  static veStrategy: typeof VeStrategy;
3370
+ static preloader: Preloader;
3571
3371
  /**
3572
3372
  * @brief SDK 版本
3573
3373
  * @type {*}
@@ -3684,12 +3484,6 @@ declare class VePlayer {
3684
3484
  * @memberof VePlayer
3685
3485
  */
3686
3486
  renderPoster(): void;
3687
- /**
3688
- * @brief 获取西瓜的definition的配置,用于在创建player或者在playNext()时传入definition,
3689
- * 以用来将playerData的当前清晰度列表数据与player.config.definition的数据进行同步
3690
- * @private
3691
- */
3692
- private getDefinitionConfig;
3693
3487
  /** {zh}
3694
3488
  * @hidden
3695
3489
  *
@@ -3929,21 +3723,6 @@ declare class VePlayer {
3929
3723
  * @memberof VePlayer
3930
3724
  */
3931
3725
  setH265SoftPlayList(): void;
3932
- /** {zh}
3933
- * @brief 切换清晰度
3934
- * @param definition 清晰度,如果在vid播放中有映射的清晰度,则对应映射之后的清晰度
3935
- * @notes 如果传的清晰度不存在,则不处理。可以通过api: getDefinitionList()获取当前的清晰度列表
3936
- */
3937
- changeDefinition(definition: string): void;
3938
- /** {zh}
3939
- * @brief 获取当前的清晰度列表,列表项中包含definition、url和selected,selected为true时表示当前被选中的清晰度
3940
- */
3941
- getDefinitionList(): Array<{
3942
- definition: string;
3943
- url: IUrl;
3944
- selected: boolean;
3945
- [propName: string]: any;
3946
- }>;
3947
3726
  /** {zh}
3948
3727
  * @brief 初始化多语言词典
3949
3728
  *
@@ -4387,6 +4166,73 @@ export declare class Subtitle extends Plugin {
4387
4166
  destroy(): void;
4388
4167
  render(): string;
4389
4168
  }
4169
+ export interface WatermarkConfig {
4170
+ enable: boolean;
4171
+ content: string;
4172
+ displayType: 0 | 1 | 2;
4173
+ fontSize: number | string;
4174
+ fontColor: string;
4175
+ opacity: number;
4176
+ tickerSpeed?: "SLOW" | "MODERATE" | "FAST";
4177
+ fontFamily?: string;
4178
+ top?: number;
4179
+ left?: number;
4180
+ bottom?: number;
4181
+ right?: number;
4182
+ }
4183
+ export declare class DynamicWatermarkPlugin extends Plugin {
4184
+ private wm;
4185
+ static get pluginName(): string;
4186
+ static get defaultConfig(): WatermarkConfig & {
4187
+ position: string;
4188
+ };
4189
+ constructor(props: any);
4190
+ afterCreate(): void;
4191
+ start(): void;
4192
+ pause(): void;
4193
+ resume(): void;
4194
+ resize(): void;
4195
+ _initWatermark(): void;
4196
+ destroy(): void;
4197
+ render(): string | HTMLElement;
4198
+ }
4199
+ export declare class DefinitionDemotePlugin extends Plugin {
4200
+ static get pluginName(): string;
4201
+ waitings: number[];
4202
+ timer: any;
4203
+ longWaitingEmitTime: number;
4204
+ waitingStartTime: number;
4205
+ playerData: any;
4206
+ isNeedShowTips: boolean;
4207
+ static get defaultConfig(): {
4208
+ oftenWaitingCount: number;
4209
+ oftenWaitingTime: number;
4210
+ longWaitingTime: number;
4211
+ isNeedAutoDemote: boolean;
4212
+ demotePriority: any[];
4213
+ };
4214
+ constructor(args: any);
4215
+ registerLanguageTexts(): {
4216
+ definition_demote_txt: {
4217
+ jp: string;
4218
+ en: string;
4219
+ zh: string;
4220
+ "zh-hk": string;
4221
+ };
4222
+ };
4223
+ afterCreate(): void;
4224
+ bindCtx(): void;
4225
+ bindEvents(): void;
4226
+ _waiting(): void;
4227
+ _count(): void;
4228
+ _time(): void;
4229
+ _clearTime(): void;
4230
+ clearState(): void;
4231
+ demote(): void;
4232
+ changeUrl(url: any): void;
4233
+ showToast(definition: any): void;
4234
+ destroy(): void;
4235
+ }
4390
4236
  export declare class TimeShiftPlugin extends Plugin {
4391
4237
  static get pluginName(): string;
4392
4238
  static get defaultConfig(): {
@@ -4499,6 +4345,56 @@ export declare class MirrorPlugin extends Plugin {
4499
4345
  destroy(): void;
4500
4346
  render(): string;
4501
4347
  }
4348
+ declare class ToastPlugin extends Plugin {
4349
+ static get pluginName(): string;
4350
+ static get defaultConfig(): {
4351
+ index: number;
4352
+ };
4353
+ constructor(args: any);
4354
+ private toastNumber;
4355
+ private toastMaps;
4356
+ beforePlayerInit(): void;
4357
+ afterPlayerInit(): void;
4358
+ afterCreate(): void;
4359
+ destroy(): void;
4360
+ add(content: string | HTMLElement, duration?: number, isNeedCloseBt?: boolean): number;
4361
+ remove(id: number): void;
4362
+ renderToast(content: string | HTMLElement, isNeedCloseBt: any, id: any): HTMLElement;
4363
+ render(): string;
4364
+ }
4365
+ export declare class MemoryPlay extends Plugin {
4366
+ static get pluginName(): string;
4367
+ static get defaultConfig(): {
4368
+ getTime: any;
4369
+ saveTime: any;
4370
+ memoryId: string;
4371
+ };
4372
+ startTime: number;
4373
+ saveTimeFun: (id: number | string, time: number) => unknown;
4374
+ getTimeFun: (id: number | string) => number | Promise<number>;
4375
+ memoryId: number | string;
4376
+ canJump: boolean;
4377
+ constructor(args: any);
4378
+ registerLanguageTexts(): {
4379
+ preText: {
4380
+ jp: string;
4381
+ en: string;
4382
+ zh: string;
4383
+ "zh-hk": string;
4384
+ };
4385
+ };
4386
+ children(): {
4387
+ toast: typeof ToastPlugin;
4388
+ };
4389
+ afterCreate(): void;
4390
+ beforePlayerInit(): Promise<void>;
4391
+ destroy(): void;
4392
+ getTime(): Promise<void>;
4393
+ setSave(): void;
4394
+ showToast(): void;
4395
+ saveTimeByStorage(memoryId: any, time: any): void;
4396
+ getTimeByStorage(memoryId: any): string;
4397
+ }
4502
4398
  export declare type InfoItem = {
4503
4399
  key: string;
4504
4400
  label: string;