@volcengine/veplayer 1.4.1 → 1.5.8

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/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Property } from 'dom-helpers/esm/types';
2
+ import Player from 'xgplayer';
2
3
  import { I18N, IPlayerOptions, IXGI18nText, Plugin } from 'xgplayer';
3
4
 
4
5
  declare enum POSITIONS {
@@ -330,6 +331,27 @@ export interface ISubtitleConfig {
330
331
  * @memberof ISubtitleConfig
331
332
  */
332
333
  isDefaultOpen?: boolean;
334
+ /**
335
+ * 是否显示图标
336
+ * 默认值:true
337
+ * @type {boolean}
338
+ * @memberof ISubtitleConfig
339
+ */
340
+ isShowIcon?: boolean;
341
+ /**
342
+ * 字幕渲染模式,外挂字幕或原生字幕
343
+ * 默认值:external
344
+ * @type {string}
345
+ * @memberof ISubtitleConfig
346
+ */
347
+ mode?: "external" | "native";
348
+ /**
349
+ * 字幕更新模式,默认vod
350
+ * 默认值:vod
351
+ * @type {string}
352
+ * @memberof ISubtitleConfig
353
+ */
354
+ updateMode?: "vod" | "live";
333
355
  /**
334
356
  * 字幕样式
335
357
  * 默认值:无
@@ -609,6 +631,12 @@ export interface IDefinitionDemotePlugin {
609
631
  */
610
632
  demotePriority?: string[];
611
633
  }
634
+ /**
635
+ * @detail Options
636
+ * @brief 更多options
637
+ * @id 2
638
+ *
639
+
612
640
  /**
613
641
  * dash播放配置想
614
642
  *
@@ -943,10 +971,114 @@ export interface IMp4EncryptPlayerConfig {
943
971
  };
944
972
  };
945
973
  }
974
+ declare enum PlatformEnum {
975
+ VOLC_ENGINE = "volcengine",
976
+ BYTE_PLUS = "byteplus"
977
+ }
978
+ export interface apiMapItem {
979
+ playDomain: string;
980
+ backupPlayDomain?: string;
981
+ licenseUrl: string;
982
+ keyDomain: string;
983
+ }
946
984
  declare enum CodecType {
947
985
  H265 = "h265",
948
986
  H264 = "h264"
949
987
  }
988
+ export declare type PLAY_MODE_TYPE = "order" | "sloop" | "loop" | "random";
989
+ export interface IMusicListItem {
990
+ /**
991
+ * 音乐地址
992
+ *
993
+ * @type {string}
994
+ * @memberof IMusicListItem
995
+ */
996
+ src: string;
997
+ /**
998
+ * 音乐唯一vid
999
+ *
1000
+ * @type {string | number}
1001
+ * @memberof IMusicListItem
1002
+ */
1003
+ vid: string | number;
1004
+ /**
1005
+ * 音乐封面
1006
+ *
1007
+ * @type {string}
1008
+ * @memberof IMusicListItem
1009
+ */
1010
+ poster?: string;
1011
+ /**
1012
+ * 音乐标题
1013
+ *
1014
+ * @type {string}
1015
+ * @memberof IMusicListItem
1016
+ */
1017
+ title?: string;
1018
+ [propName: string]: any;
1019
+ }
1020
+ export interface IABCycle {
1021
+ /**
1022
+ * AB循环段开始时间
1023
+ *
1024
+ * @type {boolean}
1025
+ * @memberof IABCycle
1026
+ */
1027
+ start: number;
1028
+ /**
1029
+ * AB循环段结束时间
1030
+ *
1031
+ * @type {boolean}
1032
+ * @memberof IABCycle
1033
+ */
1034
+ end: number;
1035
+ /**
1036
+ * AB段是否循环播放
1037
+ *
1038
+ * @type {boolean}
1039
+ * @memberof IABCycle
1040
+ */
1041
+ loop?: boolean;
1042
+ [propName: string]: any;
1043
+ }
1044
+ export interface IMusicConfig {
1045
+ /**
1046
+ * 是否启用离线下载播放
1047
+ *
1048
+ * @type {boolean}
1049
+ * @memberof IMusicConfig
1050
+ */
1051
+ offline?: boolean;
1052
+ /**
1053
+ * AB循环设置
1054
+ *
1055
+ * @type {IABCycle}
1056
+ * @memberof IMusicConfig
1057
+ */
1058
+ abCycle?: IABCycle | null;
1059
+ /**
1060
+ * 快进快退时间跨度
1061
+ *
1062
+ * @type {number}
1063
+ * @memberof IMusicConfig
1064
+ */
1065
+ timeScale?: number;
1066
+ /**
1067
+ * 循环模式
1068
+ *
1069
+ * @type {('order' | 'sloop' | 'loop' | 'random')}
1070
+ * @memberof IMusicConfig
1071
+ */
1072
+ mode?: PLAY_MODE_TYPE;
1073
+ /**
1074
+ * 播放列表
1075
+ *
1076
+ * @type {Array<IMusicListItem>}
1077
+ * @memberof IMusicConfig
1078
+ */
1079
+ list?: Array<IMusicListItem>;
1080
+ [propName: string]: any;
1081
+ }
950
1082
  /**
951
1083
  * @detail Options
952
1084
  * @brief 播放地址列表, 可配置多线路和多清晰度
@@ -1045,19 +1177,12 @@ export interface Current {
1045
1177
  * 本文档是介绍火山引擎直播和点播播放器VePlayer的相关参数和Api。
1046
1178
  */
1047
1179
  export interface IPlayerConfig extends IPlayerOptions {
1048
- /**
1049
- * “点播”还是“直播”
1050
- * @hidden
1051
- * @type {('live' | 'vod')}
1052
- * @memberof IPlayerConfig
1053
- */
1054
- type: "live" | "vod";
1055
1180
  /**
1056
1181
  * 是否是直播,默认为false
1057
1182
  * @type {boolean}
1058
1183
  * @memberof IPlayerConfig
1059
1184
  */
1060
- isLive: boolean;
1185
+ isLive?: boolean;
1061
1186
  /**
1062
1187
  * 播放器容器id,VePlayer将被插入在该容器中
1063
1188
  *
@@ -1074,14 +1199,7 @@ export interface IPlayerConfig extends IPlayerOptions {
1074
1199
  */
1075
1200
  root?: HTMLElement;
1076
1201
  /**
1077
- * @hidden
1078
- *
1079
- * @type {IPlayerOptions}
1080
- * @memberof IPlayerConfig
1081
- */
1082
- options: IPlayerOptions;
1083
- /**
1084
- * 播放地址,
1202
+ * 播放地址
1085
1203
  * 直播可通过 {@link https://console.volcengine.com/live/main/locationGenerate 视频直播控制台} 生成
1086
1204
  *
1087
1205
  * @type {string}
@@ -1092,24 +1210,45 @@ export interface IPlayerConfig extends IPlayerOptions {
1092
1210
  * 播放地址类型,可以选值为“rtm”/“flv”/“mp4”/“hls”
1093
1211
  * @notes 播放地址带后缀的则streamType非必填,否则为必填
1094
1212
  *
1095
- * @type {('rtm' | 'flv' | 'mp4' | 'hls')}
1213
+ * @type {(''mp4' | 'hls' | 'dash' | 'rtm' | 'flv')}
1214
+ * @memberof IPlayerConfig
1215
+ */
1216
+ streamType?: "mp4" | "hls" | "dash" | "rtm" | "flv";
1217
+ /**
1218
+ * 点播服务平台,可选值为'volcengine' 和 'byteplus',默认为'volcengine'即火山引擎视频点播
1219
+ * 设定此参数会指定默认的服务接口
1220
+ * @type {('volcengine' | 'byteplus')}
1221
+ * @memberof playerConfig
1222
+ */
1223
+ platform?: PlatformEnum;
1224
+ /**
1225
+ * 是否音乐播放器模式
1226
+ *
1227
+ * @type {boolean}
1096
1228
  * @memberof IPlayerConfig
1097
1229
  */
1098
- streamType?: "rtm" | "flv" | "mp4" | "hls";
1230
+ isMusic?: boolean;
1099
1231
  /**
1100
1232
  * 右键是否可用
1101
1233
  *
1102
1234
  * @type {boolean}
1103
1235
  * @memberof IPlayerConfig
1104
1236
  */
1105
- enableContextmenu: boolean;
1237
+ enableContextmenu?: boolean;
1106
1238
  /**
1107
1239
  * 关闭video上的阻止事件传播
1108
1240
  *
1109
1241
  * @type {boolean}
1110
1242
  * @memberof IPlayerConfig
1111
1243
  */
1112
- closeVideoStopPropagation: boolean;
1244
+ closeVideoStopPropagation?: boolean;
1245
+ /**
1246
+ * 是否开启hls的MSE模式,仅移动端生效,开启后采用MSE方式播放HLS,默认在移动端使用原生video播放hls
1247
+ *
1248
+ * @type {boolean}
1249
+ * @memberof IPlayerConfig
1250
+ */
1251
+ enableHlsMSE?: boolean;
1113
1252
  /**
1114
1253
  * 是否开启mp4的MSE模式,开启后采用MSE方式播放MP4,
1115
1254
  * 同时带来精确的seek加载、视频的无缝切换、流量节省等功能
@@ -1117,7 +1256,7 @@ export interface IPlayerConfig extends IPlayerOptions {
1117
1256
  * @type {boolean}
1118
1257
  * @memberof IPlayerConfig
1119
1258
  */
1120
- enableMp4MSE: boolean;
1259
+ enableMp4MSE?: boolean;
1121
1260
  /**
1122
1261
  * 播放列表
1123
1262
  * @notes url和playList必填一个,二者都传入时, url必须在playList中。
@@ -1144,7 +1283,6 @@ export interface IPlayerConfig extends IPlayerOptions {
1144
1283
  defaultConfig?: IDefaultConfig;
1145
1284
  /**
1146
1285
  * 设置多语言词典,可设置每个语言的多语言词典,
1147
- * TODO: 这里需要补充当前默认的有哪些,还有如何替换和新增多语言
1148
1286
  * 例如:
1149
1287
  * {
1150
1288
  * zh: {
@@ -1155,11 +1293,11 @@ export interface IPlayerConfig extends IPlayerOptions {
1155
1293
  * }
1156
1294
  * }
1157
1295
  *
1158
- * @type {{ [key: string]: Object }}
1296
+ * @type {{ [key: string]: Record<string, any> }}
1159
1297
  * @memberof IPlayerConfig
1160
1298
  */
1161
1299
  languages?: {
1162
- [key: string]: Object;
1300
+ [key: string]: Record<string, any>;
1163
1301
  };
1164
1302
  /**
1165
1303
  * @hidden
@@ -1176,7 +1314,6 @@ export interface IPlayerConfig extends IPlayerOptions {
1176
1314
  umdUrlMap?: Record<string, string>;
1177
1315
  /**
1178
1316
  * 是否启用软解
1179
- * @notes 关于软解的一些性能说明参考 https://v3.h5player.bytedance.net/en/plugins/extension/xgplayer-livevideo.html#%E8%BD%AF%E8%A7%A3%E6%A8%A1%E5%9D%97-%E7%94%A8%E4%BA%8E%E6%92%AD%E6%94%BE265%E6%B5%81-hls%E3%80%81flv-%E6%88%96h5%E4%B8%8B%E9%98%B2%E5%8A%AB%E6%8C%81%E6%92%AD%E6%94%BEhls%E3%80%81flv%E6%B5%81-%E5%8F%AF%E4%BB%A5%E4%B8%8Exgplayer-hls%E3%80%81xgplayer-flv%E9%85%8D%E5%90%88%E4%BD%BF%E7%94%A8
1180
1317
  * 默认: false
1181
1318
  *
1182
1319
  * @type {boolean}
@@ -1244,10 +1381,10 @@ export interface IPlayerConfig extends IPlayerOptions {
1244
1381
  /**
1245
1382
  * 弹幕及面板配置,可配置弹幕的一些参数,如弹幕文字大小、透明度、展示区域等,
1246
1383
  *
1247
- * @type {InitConfig}
1384
+ * @type {InitConfig | boolean}
1248
1385
  * @memberof IPlayerConfig
1249
1386
  */
1250
- DanmuPlugin?: InitConfig;
1387
+ DanmuPlugin?: InitConfig | boolean;
1251
1388
  /**
1252
1389
  * 清晰度自动降级配置
1253
1390
  * @notes 需要先引入DefinitionDemotePlugin插件,plugins: [window.VePlayer.DefinitionDemotePlugin]
@@ -1256,9 +1393,16 @@ export interface IPlayerConfig extends IPlayerOptions {
1256
1393
  * @memberof IPlayerConfig
1257
1394
  */
1258
1395
  DefinitionDemotePlugin?: IDefinitionDemotePlugin;
1396
+ /**
1397
+ * 唯一id,用于私有DRM加密
1398
+ *
1399
+ * @type {string}
1400
+ * @memberof IPlayerConfig
1401
+ */
1402
+ unionId?: string;
1259
1403
  /**
1260
1404
  * vid播放配置项
1261
- * @notes 需要业务方AppServer通过vid生成临时playAuthToken
1405
+ * @notes 需要业务方服务端通过vid生成临时playAuthToken
1262
1406
  *
1263
1407
  * @type {IPlayAuthTokenConfig}
1264
1408
  * @memberof IPlayerConfig
@@ -1266,28 +1410,28 @@ export interface IPlayerConfig extends IPlayerOptions {
1266
1410
  getVideoByToken?: IPlayAuthTokenConfig;
1267
1411
  /**
1268
1412
  * dash 播放配置项
1269
- * @type {IDashPluginConfig}
1413
+ * @type {Partial<IDashPluginConfig>}
1270
1414
  * @memberof IPlayerConfig
1271
1415
  */
1272
- DASHPlugin?: IDashPluginConfig;
1416
+ DASHPlugin?: Partial<IDashPluginConfig>;
1273
1417
  /**
1274
1418
  * hls 加密播放配置项
1275
- * @type {IEncryptHlsPluginConfig}
1419
+ * @type {Partial<IEncryptHlsPluginConfig> | boolean}
1276
1420
  * @memberof IPlayerConfig
1277
1421
  */
1278
- EncryptHlsPlugin?: IEncryptHlsPluginConfig;
1422
+ EncryptHlsPlugin?: Partial<IEncryptHlsPluginConfig> | boolean;
1279
1423
  /**
1280
1424
  * 质量日志配置项
1281
- * @type {IVodLogOptsConfig}
1425
+ * @type {Partial<IVodLogOptsConfig>}
1282
1426
  * @memberof IPlayerConfig
1283
1427
  */
1284
- vodLogOpts?: IVodLogOptsConfig;
1428
+ vodLogOpts?: Partial<IVodLogOptsConfig>;
1285
1429
  /**
1286
1430
  * mp4加密播放配置项
1287
- * @type {IMp4EncryptPlayerConfig}
1431
+ * @type {Partial<IMp4EncryptPlayerConfig> | boolean}
1288
1432
  * @memberof IPlayerConfig
1289
1433
  */
1290
- Mp4EncryptPlayer?: IMp4EncryptPlayerConfig;
1434
+ Mp4EncryptPlayer?: Partial<IMp4EncryptPlayerConfig> | boolean;
1291
1435
  /**
1292
1436
  * 自适应码率配置项
1293
1437
  * @type {IAutoBitrateOptsConfig}
@@ -1305,7 +1449,13 @@ export interface IPlayerConfig extends IPlayerOptions {
1305
1449
  * @type {IMemoryPlayConfig}
1306
1450
  * @memberof IPlayerConfig
1307
1451
  */
1308
- MemoryPlay?: IMemoryPlayConfig;
1452
+ MemoryPlay?: IMemoryPlayConfig | boolean;
1453
+ /**
1454
+ * 音乐播放器配置项
1455
+ * @type {IMusicConfig}
1456
+ * @memberof IPlayerConfig
1457
+ */
1458
+ music?: IMusicConfig;
1309
1459
  }
1310
1460
  /**
1311
1461
  * 初始配置
@@ -1396,23 +1546,29 @@ export interface IPlayAuthTokenConfig {
1396
1546
  */
1397
1547
  playDomain?: string;
1398
1548
  /**
1399
- * 是否启用控制台设置的封面图
1549
+ * 是否启用控制台设置的封面图,默认false
1400
1550
  * @type {boolean}
1401
1551
  * @memberof IPlayAuthTokenConfig
1402
1552
  */
1403
1553
  needPoster?: boolean;
1404
1554
  /**
1405
- * 是否启用控制台设置的雪碧图
1555
+ * 是否启用控制台设置的雪碧图,默认false
1406
1556
  * @type {boolean}
1407
1557
  * @memberof IPlayAuthTokenConfig
1408
1558
  */
1409
1559
  needThumbs?: boolean;
1410
1560
  /**
1411
- * 是否启用控制台设置的蒙版弹幕
1561
+ * 是否启用控制台设置的蒙版弹幕,默认false
1412
1562
  * @type {boolean}
1413
1563
  * @memberof IPlayAuthTokenConfig
1414
1564
  */
1415
1565
  needBarrageMask?: boolean;
1566
+ /**
1567
+ * 是否需要多清晰度,默认为true
1568
+ * @type {boolean}
1569
+ * @memberof IPlayAuthTokenConfig
1570
+ */
1571
+ needDefinitionList?: boolean;
1416
1572
  /**
1417
1573
  * hls标准加密播放所用的keyToken
1418
1574
  * @type {boolean}
@@ -1421,18 +1577,31 @@ export interface IPlayAuthTokenConfig {
1421
1577
  keyToken?: string;
1422
1578
  /**
1423
1579
  * 密钥请求域名
1424
- * @hidden
1425
1580
  * @type {string}
1426
1581
  * @memberof IPlayAuthTokenConfig
1427
1582
  */
1428
1583
  keyDomain?: string;
1429
1584
  /**
1430
1585
  * 获取key方式,默认'TOP'
1431
- * @hidden
1432
1586
  * @type {string}
1433
1587
  * @memberof IPlayAuthTokenConfig
1434
1588
  */
1435
1589
  getKeyType?: string;
1590
+ /**
1591
+ * 获取privateDrmAuthToken的回调,
1592
+ * @type {(
1593
+ * playAuthIds: string,
1594
+ * vid: string,
1595
+ * unionInfo: string,
1596
+ * ) => Promise<Record<string, string>>}
1597
+ * @memberof IPlayAuthTokenConfig
1598
+ */
1599
+ getDrmAuthToken?: (playAuthIds: string, vid: string, unionInfo: string) => Promise<string>;
1600
+ /**
1601
+ * 是否禁用DRM解密播放降级,默认false
1602
+ * @type {boolean}
1603
+ */
1604
+ disDrmDegraded?: boolean;
1436
1605
  /**
1437
1606
  * 可携带aid等透传参数,如
1438
1607
  * {aid: 1234},以playAuthToken下发的参数的优先级最高。
@@ -1456,8 +1625,8 @@ export interface IPlayAuthTokenConfig {
1456
1625
  * ``` javascript
1457
1626
  * {
1458
1627
  * '480p': {
1459
- * definition: 'hd',
1460
- * definitionTextKey: 'HD'
1628
+ * definition: 'hd', // 清晰度兜底文案
1629
+ * definitionTextKey: 'HD' // 多语言文案key
1461
1630
  * },
1462
1631
  * '720p': {
1463
1632
  * definition: 'uhd',
@@ -1470,6 +1639,12 @@ export interface IPlayAuthTokenConfig {
1470
1639
  * @memberof IPlayAuthTokenConfig
1471
1640
  */
1472
1641
  definitionMap?: Record<string, string | definitionItem>;
1642
+ /**
1643
+ * 服务502错误时重试次数,默认为1
1644
+ * @type {number}
1645
+ * @memberof IPlayAuthTokenConfig
1646
+ */
1647
+ retryCount?: number;
1473
1648
  }
1474
1649
  /**
1475
1650
  * 清晰度定义
@@ -1598,6 +1773,11 @@ declare class PlayerData {
1598
1773
  expireDetectType: Array<"xhrStatus" | "urlExpire" | "getUrlTime">;
1599
1774
  onMediaExpired: () => Promise<IPlayerConfig>;
1600
1775
  onTokenExpired: () => Promise<IPlayAuthTokenConfig>;
1776
+ platform: PlatformEnum;
1777
+ apiMap: apiMapItem;
1778
+ unionId?: string;
1779
+ unionInfo?: string;
1780
+ isMusic?: boolean;
1601
1781
  constructor(configs: IPlayerConfig);
1602
1782
  initPlayData(configs: any): void;
1603
1783
  initPlaylistAndGetCurrent(configs: IPlayerConfig): any;
@@ -1645,6 +1825,38 @@ declare class PlayerData {
1645
1825
  */
1646
1826
  getNextDefinition(isDown: boolean, demotePriority: any): Stream[];
1647
1827
  }
1828
+ declare function isMSESupport(mime?: string): boolean;
1829
+ export interface IConfig {
1830
+ mode?: number;
1831
+ isAutoChange?: boolean;
1832
+ }
1833
+ declare class MobilePlayerPanel {
1834
+ config: IConfig;
1835
+ parent: HTMLElement;
1836
+ root: any;
1837
+ mode: number;
1838
+ isAutoChange: number;
1839
+ player: any;
1840
+ children: HTMLElement | undefined;
1841
+ container: HTMLElement | undefined;
1842
+ title: HTMLElement | undefined;
1843
+ isShow: boolean;
1844
+ constructor(args: any);
1845
+ initEvents(): void;
1846
+ handleOrientationChange(): void;
1847
+ changeConfig(config: IConfig): void;
1848
+ changeMode(mode: number): void;
1849
+ renderPanel(): void;
1850
+ showPanel(children: HTMLElement, title?: string, isItemList?: boolean): Promise<void>;
1851
+ updatePanel(children: HTMLElement): void;
1852
+ setTitle(title: any): void;
1853
+ renderTitle(title: any): HTMLElement;
1854
+ show(): void;
1855
+ hide(): void;
1856
+ handleHide(e: any): void;
1857
+ bind(event: string, eventHandle: any, isBubble?: boolean): void;
1858
+ destroy(): void;
1859
+ }
1648
1860
  declare class VePlayer {
1649
1861
  /**
1650
1862
  * 播放相关配置数据
@@ -1655,12 +1867,18 @@ declare class VePlayer {
1655
1867
  */
1656
1868
  playerData: PlayerData;
1657
1869
  /**
1658
- * xgplayer实例
1659
- * @hidden
1870
+ * 播放器内核实例
1660
1871
  * @type {*}
1661
1872
  * @memberof VePlayer
1662
1873
  */
1663
- player: any;
1874
+ player: Player & {
1875
+ changePluginsIcon?: (name: any, isShow: any) => void;
1876
+ playerData?: PlayerData;
1877
+ playerType?: string;
1878
+ playerVersion?: string;
1879
+ panel?: MobilePlayerPanel;
1880
+ emitExpireTimestamp?: number;
1881
+ };
1664
1882
  /**
1665
1883
  * @hidden
1666
1884
  *
@@ -1744,7 +1962,7 @@ declare class VePlayer {
1744
1962
  * @type {*}
1745
1963
  * @memberof VePlayer
1746
1964
  */
1747
- private delayError;
1965
+ delayError: any[];
1748
1966
  private isFirstEmitted;
1749
1967
  /**
1750
1968
  * @hidden
@@ -1753,6 +1971,9 @@ declare class VePlayer {
1753
1971
  * @memberof VePlayer
1754
1972
  */
1755
1973
  private sdkUmdLoader;
1974
+ static isMSESupported: typeof isMSESupport;
1975
+ static isRTMSupported: typeof import("@byted/xgplayer-rts").RtsPlugin.isSupported;
1976
+ static playerVersion: string;
1756
1977
  constructor(configs: IPlayerConfig);
1757
1978
  /**
1758
1979
  *
@@ -1855,16 +2076,22 @@ declare class VePlayer {
1855
2076
  * @return {*}
1856
2077
  * @memberof VePlayer
1857
2078
  */
1858
- createPlayer(): Promise<any>;
2079
+ createPlayer(): Promise<Player & {
2080
+ changePluginsIcon?: (name: any, isShow: any) => void;
2081
+ playerData?: PlayerData;
2082
+ playerType?: string;
2083
+ playerVersion?: string;
2084
+ panel?: MobilePlayerPanel;
2085
+ emitExpireTimestamp?: number;
2086
+ }>;
1859
2087
  /**
1860
2088
  * @hidden
1861
2089
  *
1862
2090
  * @param {*} finalOptions
1863
- * @param {IEncryptHlsPluginConfig} encryptHlsPluginConfig
1864
2091
  * @return {*}
1865
2092
  * @memberof VePlayer
1866
2093
  */
1867
- setHlsEncryptConfig(finalOptions: IPlayerConfig, encryptHlsPluginConfig: IEncryptHlsPluginConfig): void;
2094
+ setPluginConfig(finalOptions: IPlayerConfig): void;
1868
2095
  /**
1869
2096
  * @hidden
1870
2097
  *
@@ -1887,7 +2114,7 @@ declare class VePlayer {
1887
2114
  * @memberof VePlayer
1888
2115
  */
1889
2116
  getCurrentPlayerConfig(): {
1890
- type?: "live" | "vod";
2117
+ type?: "vod" | "live";
1891
2118
  isLive?: boolean;
1892
2119
  lineId?: string | number;
1893
2120
  definition?: string;
@@ -1926,7 +2153,7 @@ declare class VePlayer {
1926
2153
  *
1927
2154
  * @memberof VePlayer
1928
2155
  */
1929
- _setPlayerInfo(): void;
2156
+ private _setPlayerInfo;
1930
2157
  /**
1931
2158
  *
1932
2159
  *
@@ -1997,14 +2224,14 @@ declare class VePlayer {
1997
2224
  getSdkPlugin(name: any): any;
1998
2225
  /**
1999
2226
  * @description 更换playAuthToken的方法
2000
- * @note 这里指同一个视频切换视频源,不能用来切换不同类型的视频
2001
- * @param { IPlayAuthTokenConfig } config
2002
- * @param { boolean } isNewVideo 是否是新视频,默认false,如果是true,则起播时间为0
2227
+ * @notes 这里指同一个视频切换视频源,不能用来切换不同类型的视频
2228
+ * @param { IPlayAuthTokenConfig } config authToken配置
2229
+ * @param { boolean } isNewVideo 是否是新视频,默认true。若未false即表示同一个视频切换token播放,会在切换前时间点继续播放
2003
2230
  * @memberof VePlayer
2004
2231
  */
2005
2232
  switchAuthToken(config: IPlayAuthTokenConfig, isNewVideo?: boolean): Promise<void>;
2006
2233
  /**
2007
- * @description 更新playAuthToken的方法
2234
+ * @description 更新playAuthToken的方法,用来更新视频地址
2008
2235
  * @param { IPlayAuthTokenConfig } config
2009
2236
  * @memberof VePlayer
2010
2237
  */
@@ -2016,14 +2243,14 @@ declare class VePlayer {
2016
2243
  get src(): any;
2017
2244
  /**
2018
2245
  * @description 设置当前视频的地址
2019
- * @note 会重新拉取新的视频,从0开始起播
2246
+ * @notes 会重新拉取新的视频,从0开始起播
2020
2247
  * @memberof VePlayer
2021
2248
  */
2022
2249
  set src(url: any);
2023
2250
  /**
2024
2251
  * 切换视频url
2025
2252
  * @param {string} url 同一个视频,切换视频地址
2026
- * @note 切换后从切换前的时间点继续播放
2253
+ * @notes 切换后从切换前的时间点继续播放
2027
2254
  * @return {Promise<void>}
2028
2255
  * @memberof VePlayer
2029
2256
  */
@@ -2032,17 +2259,19 @@ declare class VePlayer {
2032
2259
  * 重建播放下一个
2033
2260
  *
2034
2261
  * @param {playerConfig} config
2262
+ * @param { boolean } isNewVideo 是否是新视频,默认true。若未false即表示同一个视频切换token播放,会在切换前时间点继续播放
2035
2263
  * @memberof VePlayer
2036
2264
  */
2037
- next(config: IPlayerConfig): Promise<void>;
2265
+ next(config: IPlayerConfig, isNewVideo?: boolean): Promise<void>;
2038
2266
  /**
2039
2267
  * 切换视频源,主要用于在视频过期时更新视频源
2040
2268
  *
2041
2269
  * @param {IPlayerConfig} config
2270
+ * @param { boolean } isNewVideo 是否是新视频,默认true。若未false即表示同一个视频切换token播放,会在切换前时间点继续播放
2042
2271
  * @return{Promise<any>}
2043
2272
  * @memberof VePlayer
2044
2273
  */
2045
- playNext(config: IPlayerConfig): Promise<any>;
2274
+ playNext(config: IPlayerConfig, isNewVideo?: boolean): Promise<any>;
2046
2275
  /**
2047
2276
  * @hidden
2048
2277
  *
@@ -2063,9 +2292,16 @@ declare class VePlayer {
2063
2292
  * @return {*}
2064
2293
  * @memberof VePlayer
2065
2294
  */
2066
- getPlayerInstance(): any;
2295
+ getPlayerInstance(): Player & {
2296
+ changePluginsIcon?: (name: any, isShow: any) => void;
2297
+ playerData?: PlayerData;
2298
+ playerType?: string;
2299
+ playerVersion?: string;
2300
+ panel?: MobilePlayerPanel;
2301
+ emitExpireTimestamp?: number;
2302
+ };
2067
2303
  /**
2068
- * @public
2304
+ * @hidden
2069
2305
  *
2070
2306
  * @return {*}
2071
2307
  * @memberof VePlayer
@@ -2094,13 +2330,128 @@ declare class VePlayer {
2094
2330
  */
2095
2331
  private _initI18N;
2096
2332
  /**
2097
- * 销毁当前示例
2333
+ * 获取音乐播放模式
2334
+ * @notes 仅音乐播放模式有效
2335
+ * @return {PLAY_MODE_TYPE}
2336
+ * @memberof VePlayer
2337
+ */
2338
+ get musicMode(): PLAY_MODE_TYPE;
2339
+ /**
2340
+ * 设置音乐播放模式
2341
+ * @notes 仅音乐播放模式有效
2342
+ * @memberof VePlayer
2343
+ * @param {PLAY_MODE_TYPE} val 模式值
2344
+ */
2345
+ set musicMode(val: PLAY_MODE_TYPE);
2346
+ /**
2347
+ * 获取音乐播放快进快退时间跨度
2348
+ * @notes 仅音乐播放模式有效
2349
+ * @return {number}
2350
+ * @memberof VePlayer
2351
+ */
2352
+ get musicTimeScale(): number;
2353
+ /**
2354
+ * 设置音乐播放快进快退时间跨度
2355
+ * @notes 仅音乐播放模式有效
2356
+ * @param {number} scale 时间跨度
2357
+ * @memberof VePlayer
2358
+ */
2359
+ set musicTimeScale(scale: number);
2360
+ /**
2361
+ * 获取音乐播放列表
2362
+ * @notes 仅音乐播放模式有效
2363
+ * @return {IMusicListItem[]}
2364
+ * @memberof VePlayer
2365
+ */
2366
+ get musicList(): IMusicListItem[];
2367
+ /**
2368
+ * 设置音乐播放列表
2369
+ * @notes 仅音乐播放模式有效
2370
+ * @param {IMusicListItem[]} list 播放列表
2371
+ * @memberof VePlayer
2372
+ */
2373
+ set musicList(list: IMusicListItem[]);
2374
+ /**
2375
+ * 向播放列表中加入歌曲
2376
+ * @notes 仅音乐播放模式有效
2377
+ * @param {IMusicListItem} meta 歌曲信息
2378
+ * @memberof VePlayer
2379
+ */
2380
+ musicAdd(meta: IMusicListItem): void;
2381
+ /**
2382
+ * 随机获取播放列表中某一首歌曲
2383
+ * @notes 仅音乐播放模式有效
2384
+ * @return {IMusicListItem} 歌曲信息
2385
+ * @memberof VePlayer
2386
+ */
2387
+ musicRandom(): IMusicListItem;
2388
+ /**
2389
+ * 播放播放列表的下一首歌曲
2390
+ * @notes 仅音乐播放模式有效
2391
+ * @memberof VePlayer
2392
+ */
2393
+ musicNext(): void;
2394
+ /**
2395
+ * 播放播放列表的上一首歌曲
2396
+ * @notes 仅音乐播放模式有效
2397
+ * @memberof VePlayer
2398
+ */
2399
+ musicPrev(): void;
2400
+ /**
2401
+ * 播放播放列表的第n首歌曲
2402
+ * @notes 仅音乐播放模式有效
2403
+ * @param {number} index 播放列表中的序号
2404
+ * @memberof VePlayer
2405
+ */
2406
+ musicSetIndex(index: number): void;
2407
+ /**
2408
+ * 歌曲快进
2409
+ * @notes 仅音乐播放模式有效
2410
+ * @memberof VePlayer
2411
+ */
2412
+ musicForward(): void;
2413
+ /**
2414
+ * 歌曲后退
2415
+ * @notes 仅音乐播放模式有效
2416
+ * @memberof VePlayer
2417
+ */
2418
+ musicBackward(): void;
2419
+ /**
2420
+ * 从播放列表移除指定歌曲
2421
+ * @notes 仅音乐播放模式有效
2422
+ * @param {string | number} vid 歌曲vid
2423
+ * @memberof VePlayer
2424
+ */
2425
+ musicRemove(vid: string | number): void;
2426
+ /**
2427
+ * 设置ab循环
2428
+ * @param { number | IABCycle } start
2429
+ * @param { number } [end]
2430
+ * @param { boolean } [loop]
2431
+ * @param {{ [propName: string]: any }} [ext]
2432
+ * @memberof VePlayer
2433
+ */
2434
+ musicSetAbCycle(start: number | IABCycle, end?: number, loop?: boolean, ext?: {
2435
+ [propName: string]: any;
2436
+ }): void;
2437
+ /**
2438
+ * 移除ab循环
2439
+ * @memberof VePlayer
2440
+ */
2441
+ musicRemoveAbCycle(): void;
2442
+ /**
2443
+ * 销毁当前播放器SDK实例
2098
2444
  *
2099
2445
  * @memberof VePlayer
2100
2446
  */
2101
2447
  destroy(): Promise<void>;
2102
2448
  }
2103
2449
  export declare function getI18N(): typeof I18N;
2450
+ declare class MusicPreset {
2451
+ ignores: string[];
2452
+ plugins: any[];
2453
+ constructor(options: any, playerConfig: any);
2454
+ }
2104
2455
  export interface ISubTitles {
2105
2456
  timestamp: number;
2106
2457
  text: string;
@@ -2251,6 +2602,7 @@ export interface IPanelItem {
2251
2602
  "data-type"?: string;
2252
2603
  }
2253
2604
  export declare class Subtitle extends Plugin {
2605
+ constructor(args: any);
2254
2606
  static get pluginName(): string;
2255
2607
  static get defaultConfig(): {
2256
2608
  position: string;
@@ -2270,6 +2622,9 @@ export declare class Subtitle extends Plugin {
2270
2622
  line: string;
2271
2623
  fontColor: string;
2272
2624
  };
2625
+ isShowIcon: boolean;
2626
+ mode: string;
2627
+ updateMode: string;
2273
2628
  };
2274
2629
  private _delegates;
2275
2630
  isOpenState: boolean;
@@ -2278,13 +2633,31 @@ export declare class Subtitle extends Plugin {
2278
2633
  subTitles: any;
2279
2634
  curIndex: number;
2280
2635
  curItem: ISubTitleItem;
2281
- beforeCreate(args: any): void;
2282
2636
  afterCreate(): void;
2637
+ /**
2638
+ * @description 初始化原生字幕
2639
+ *
2640
+ */
2641
+ _initNativeSubtitle(defaultIndex: any): void;
2642
+ /**
2643
+ * 初始化外挂字幕
2644
+ * @param {number} defaultIndex
2645
+ */
2646
+ _initExtSubTitle(defaultIndex: any): void;
2647
+ _renderList(defaultIndex: any): void;
2648
+ _onOff(): void;
2649
+ _onChange(data: any): void;
2650
+ _onListReset(data: any): void;
2651
+ updateCurItem(cIndex: any, subtitle: any): void;
2283
2652
  initEvents(): void;
2284
2653
  handleButtonChange(e: any): void;
2285
2654
  showList(): void;
2286
2655
  hideList(): void;
2287
2656
  openSubtitle(): void;
2657
+ getSubTitleIndex(list: any, subtitle?: {
2658
+ id: string;
2659
+ language: string;
2660
+ }): number;
2288
2661
  registerIcons(): {
2289
2662
  vttSubOpen: {
2290
2663
  icon: any;
@@ -2326,13 +2699,15 @@ export declare class Subtitle extends Plugin {
2326
2699
  */
2327
2700
  switchSubTitle(subtitle?: ISubTitleItem): any;
2328
2701
  switchOffSubtitle(): void;
2702
+ noShowSubtitle(): void;
2329
2703
  renderItemList(): void;
2330
2704
  /**
2331
2705
  *
2332
- * @param { Array<ISubTitleItem> } list
2706
+ * @param { Array<SubTitleItem> } list
2333
2707
  * @param { boolean } needRemove 是否移除原来的字幕
2334
2708
  */
2335
2709
  updateSubtitles(list?: any[], needRemove?: boolean): void;
2710
+ updateList(data?: {}): void;
2336
2711
  changeTipText(): void;
2337
2712
  showMobilePanel(): void;
2338
2713
  updatePanel(): void;
@@ -2629,9 +3004,11 @@ export declare class LiveInfoPanel extends Plugin {
2629
3004
  close(): void;
2630
3005
  render(): string;
2631
3006
  }
3007
+ export * from "xgplayer";
2632
3008
 
2633
3009
  export {
2634
3010
  LiveSubTitlesPlugin as LiveSubtitlesPlugin,
3011
+ MusicPreset as Music,
2635
3012
  VePlayer as default,
2636
3013
  };
2637
3014