@byteplus/veplayer 2.3.1-rc.0 → 2.3.1-rc.2

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/umd/veplayer.d.ts CHANGED
@@ -2332,6 +2332,7 @@ declare enum DynamicModule {
2332
2332
  PluginFlv = "plugin:flv",
2333
2333
  PluginMp4 = "plugin:mp4",
2334
2334
  PluginHls = "plugin:hls",
2335
+ PluginHlsJs = "plugin:hlsjs",
2335
2336
  PluginShaka = "plugin:shaka",
2336
2337
  PluginRtm = "plugin:rtm",
2337
2338
  PluginXgvideo = "plugin:xgvideo",
@@ -2343,6 +2344,7 @@ type ModulesMap = {
2343
2344
  [DynamicModule.PluginFlv]: Exports;
2344
2345
  [DynamicModule.PluginMp4]: Exports;
2345
2346
  [DynamicModule.PluginHls]: Exports;
2347
+ [DynamicModule.PluginHlsJs]: Exports;
2346
2348
  [DynamicModule.PluginShaka]: Exports;
2347
2349
  [DynamicModule.PluginRtm]: Exports;
2348
2350
  [DynamicModule.PluginXgvideo]: Exports;
@@ -4067,6 +4069,7 @@ declare namespace strategy {
4067
4069
  readonly "plugin:flv": "veplayer.plugin.flv.[env].[ext]";
4068
4070
  readonly "plugin:mp4": "veplayer.plugin.mp4.[env].[ext]";
4069
4071
  readonly "plugin:hls": "veplayer.plugin.hls.[env].[ext]";
4072
+ readonly "plugin:hlsjs": "veplayer.plugin.hlsjs.[env].[ext]";
4070
4073
  readonly "plugin:shaka": "veplayer.plugin.shaka.[env].[ext]";
4071
4074
  readonly "plugin:rtm": "veplayer.plugin.rtm.[env].[ext]";
4072
4075
  readonly "plugin:xgvideo": "veplayer.plugin.xgvideo.[env].[ext]";
@@ -4097,6 +4100,7 @@ declare namespace strategy {
4097
4100
  PluginFlv = "plugin:flv",
4098
4101
  PluginMp4 = "plugin:mp4",
4099
4102
  PluginHls = "plugin:hls",
4103
+ PluginHlsJs = "plugin:hlsjs",
4100
4104
  PluginShaka = "plugin:shaka",
4101
4105
  PluginRtm = "plugin:rtm",
4102
4106
  PluginXgvideo = "plugin:xgvideo",
@@ -4108,6 +4112,7 @@ declare namespace strategy {
4108
4112
  [DynamicModule.PluginFlv]: Exports;
4109
4113
  [DynamicModule.PluginMp4]: Exports;
4110
4114
  [DynamicModule.PluginHls]: Exports;
4115
+ [DynamicModule.PluginHlsJs]: Exports;
4111
4116
  [DynamicModule.PluginShaka]: Exports;
4112
4117
  [DynamicModule.PluginRtm]: Exports;
4113
4118
  [DynamicModule.PluginXgvideo]: Exports;
@@ -4149,7 +4154,7 @@ declare namespace strategy {
4149
4154
  }
4150
4155
  type StrategyCreator<T, R extends keyof ModulesMap = any> = (options?: T) => Strategy<T, R>;
4151
4156
  const createFlvMseStrategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginFlv>;
4152
- const createHlsMseStrategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginHls>;
4157
+ const createHlsMseStrategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginHls | DynamicModule.PluginHlsJs>;
4153
4158
  const createSoftDecodeH264Strategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginXgvideo>;
4154
4159
  const createSoftDecodeH265Strategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginXgvideo>;
4155
4160
  function getCodec(options: VePlayerBaseOptions): Promise<"unknown" | Codec>;
@@ -5579,6 +5584,8 @@ interface Hls {
5579
5584
  * @default false
5580
5585
  */
5581
5586
  enableMSE?: boolean;
5587
+ enableHlsJs?: boolean;
5588
+ hlsOpts?: any;
5582
5589
  }
5583
5590
  /** {zh}
5584
5591
  * @detail api
@@ -8942,6 +8949,7 @@ declare namespace live {
8942
8949
  readonly "plugin:flv": "veplayer.plugin.flv.[env].[ext]";
8943
8950
  readonly "plugin:mp4": "veplayer.plugin.mp4.[env].[ext]";
8944
8951
  readonly "plugin:hls": "veplayer.plugin.hls.[env].[ext]";
8952
+ readonly "plugin:hlsjs": "veplayer.plugin.hlsjs.[env].[ext]";
8945
8953
  readonly "plugin:shaka": "veplayer.plugin.shaka.[env].[ext]";
8946
8954
  readonly "plugin:rtm": "veplayer.plugin.rtm.[env].[ext]";
8947
8955
  readonly "plugin:xgvideo": "veplayer.plugin.xgvideo.[env].[ext]";
@@ -8972,6 +8980,7 @@ declare namespace live {
8972
8980
  PluginFlv = "plugin:flv",
8973
8981
  PluginMp4 = "plugin:mp4",
8974
8982
  PluginHls = "plugin:hls",
8983
+ PluginHlsJs = "plugin:hlsjs",
8975
8984
  PluginShaka = "plugin:shaka",
8976
8985
  PluginRtm = "plugin:rtm",
8977
8986
  PluginXgvideo = "plugin:xgvideo",
@@ -8983,6 +8992,7 @@ declare namespace live {
8983
8992
  [DynamicModule.PluginFlv]: Exports;
8984
8993
  [DynamicModule.PluginMp4]: Exports;
8985
8994
  [DynamicModule.PluginHls]: Exports;
8995
+ [DynamicModule.PluginHlsJs]: Exports;
8986
8996
  [DynamicModule.PluginShaka]: Exports;
8987
8997
  [DynamicModule.PluginRtm]: Exports;
8988
8998
  [DynamicModule.PluginXgvideo]: Exports;
@@ -10062,6 +10072,8 @@ declare namespace live {
10062
10072
  * @default false
10063
10073
  */
10064
10074
  enableMSE?: boolean;
10075
+ enableHlsJs?: boolean;
10076
+ hlsOpts?: any;
10065
10077
  }
10066
10078
  /** {zh}
10067
10079
  * @detail api
@@ -12478,6 +12478,7 @@ var __publicField = (obj, key, value) => {
12478
12478
  "plugin:flv": "veplayer.plugin.flv.[env].[ext]",
12479
12479
  "plugin:mp4": "veplayer.plugin.mp4.[env].[ext]",
12480
12480
  "plugin:hls": "veplayer.plugin.hls.[env].[ext]",
12481
+ "plugin:hlsjs": "veplayer.plugin.hlsjs.[env].[ext]",
12481
12482
  "plugin:shaka": "veplayer.plugin.shaka.[env].[ext]",
12482
12483
  "plugin:rtm": "veplayer.plugin.rtm.[env].[ext]",
12483
12484
  "plugin:xgvideo": "veplayer.plugin.xgvideo.[env].[ext]",
@@ -12489,6 +12490,7 @@ var __publicField = (obj, key, value) => {
12489
12490
  DynamicModule2["PluginFlv"] = "plugin:flv";
12490
12491
  DynamicModule2["PluginMp4"] = "plugin:mp4";
12491
12492
  DynamicModule2["PluginHls"] = "plugin:hls";
12493
+ DynamicModule2["PluginHlsJs"] = "plugin:hlsjs";
12492
12494
  DynamicModule2["PluginShaka"] = "plugin:shaka";
12493
12495
  DynamicModule2["PluginRtm"] = "plugin:rtm";
12494
12496
  DynamicModule2["PluginXgvideo"] = "plugin:xgvideo";
@@ -13436,10 +13438,6 @@ var __publicField = (obj, key, value) => {
13436
13438
  plugins.forEach((plugin) => {
13437
13439
  TopRightBar.isTopRightPlugin(plugin, options) ? topRightPlugins.push(plugin) : normalPlugins.push(plugin);
13438
13440
  });
13439
- window._veplayer_test_log["startxgplayer"] = {
13440
- msg: "start to new XGPlayer",
13441
- timestamp: performance.now()
13442
- };
13443
13441
  this._player = new Player({
13444
13442
  ...DEFAULT_OPTIONS,
13445
13443
  ...xgOptions,
@@ -18733,25 +18731,10 @@ var __publicField = (obj, key, value) => {
18733
18731
  if (!mseStrategy && !softStrategy) {
18734
18732
  return {};
18735
18733
  }
18736
- window._veplayer_test_log["beforefetch"] = {
18737
- msg: "start to load cdn",
18738
- timestamp: performance.now()
18739
- };
18740
18734
  const [mseModule, softModule] = await Promise.all([
18741
18735
  (mseStrategy == null ? void 0 : mseStrategy.module) && load(mseStrategy.module).catch(() => void 0),
18742
18736
  (softStrategy == null ? void 0 : softStrategy.module) && load(softStrategy.module).catch(() => void 0)
18743
18737
  ]);
18744
- if (mseModule) {
18745
- window._veplayer_test_log["fetched"] = {
18746
- msg: "cdn loaded",
18747
- timestamp: performance.now()
18748
- };
18749
- } else {
18750
- window._veplayer_test_log["fetched"] = {
18751
- msg: "cdn loaded but empty",
18752
- timestamp: performance.now()
18753
- };
18754
- }
18755
18738
  (softModule == null ? void 0 : softModule.XGVideoPlugin) && ((_c = softStrategy == null ? void 0 : softStrategy.afterLoad) == null ? void 0 : _c.call(softStrategy, softModule == null ? void 0 : softModule.XGVideoPlugin));
18756
18739
  const combineOptions$1 = combineOptions([mseStrategy, softStrategy]);
18757
18740
  const plugins = [];
@@ -18809,16 +18792,30 @@ var __publicField = (obj, key, value) => {
18809
18792
  module: DynamicModule.PluginFlv
18810
18793
  };
18811
18794
  };
18812
- const createHlsMseStrategy = (options) => ({
18813
- options: {
18814
- hls: {
18815
- retryCount: 0,
18816
- pollRetryCount: 0,
18817
- ...(options == null ? void 0 : options.hls) ?? {}
18818
- }
18819
- },
18820
- module: DynamicModule.PluginHls
18821
- });
18795
+ const createHlsMseStrategy = (options) => {
18796
+ var _a;
18797
+ if (options == null ? void 0 : options.hls.enableHlsJs) {
18798
+ return {
18799
+ options: {
18800
+ hlsJsPlugin: {
18801
+ hlsOpts: (_a = options == null ? void 0 : options.hls) == null ? void 0 : _a.hlsOpts
18802
+ }
18803
+ },
18804
+ module: DynamicModule.PluginHlsJs
18805
+ };
18806
+ } else {
18807
+ return {
18808
+ options: {
18809
+ hls: {
18810
+ retryCount: 0,
18811
+ pollRetryCount: 0,
18812
+ ...(options == null ? void 0 : options.hls) ?? {}
18813
+ }
18814
+ },
18815
+ module: DynamicModule.PluginHls
18816
+ };
18817
+ }
18818
+ };
18822
18819
  const createSoftDecodeH264Strategy = () => ({
18823
18820
  options: {
18824
18821
  mediaType: "xg-video",
@@ -21812,7 +21809,7 @@ var __publicField = (obj, key, value) => {
21812
21809
  user_id: this._userId,
21813
21810
  device_id: this._deviceId,
21814
21811
  ext: {
21815
- veplayer_version: "2.3.1-rc.0",
21812
+ veplayer_version: "2.3.1-rc.2",
21816
21813
  flv_version: "3.0.15-alpha.2",
21817
21814
  hls_version: "3.0.12",
21818
21815
  rts_version: "0.2.0-alpha.5"
@@ -22193,12 +22190,6 @@ var __publicField = (obj, key, value) => {
22193
22190
  async function createLivePlayer(options) {
22194
22191
  var _a, _b;
22195
22192
  let player = void 0;
22196
- window._veplayer_test_log = {
22197
- start: {
22198
- msg: "start to create veplayer",
22199
- timestamp: performance.now()
22200
- }
22201
- };
22202
22193
  if (!options || !options.url && !options.playlist) {
22203
22194
  throw create(ErrorCode.INVALID_PARAMETER, new VeI18n());
22204
22195
  }
@@ -2332,6 +2332,7 @@ declare enum DynamicModule {
2332
2332
  PluginFlv = "plugin:flv",
2333
2333
  PluginMp4 = "plugin:mp4",
2334
2334
  PluginHls = "plugin:hls",
2335
+ PluginHlsJs = "plugin:hlsjs",
2335
2336
  PluginShaka = "plugin:shaka",
2336
2337
  PluginRtm = "plugin:rtm",
2337
2338
  PluginXgvideo = "plugin:xgvideo",
@@ -2343,6 +2344,7 @@ type ModulesMap = {
2343
2344
  [DynamicModule.PluginFlv]: Exports;
2344
2345
  [DynamicModule.PluginMp4]: Exports;
2345
2346
  [DynamicModule.PluginHls]: Exports;
2347
+ [DynamicModule.PluginHlsJs]: Exports;
2346
2348
  [DynamicModule.PluginShaka]: Exports;
2347
2349
  [DynamicModule.PluginRtm]: Exports;
2348
2350
  [DynamicModule.PluginXgvideo]: Exports;
@@ -4067,6 +4069,7 @@ declare namespace strategy {
4067
4069
  readonly "plugin:flv": "veplayer.plugin.flv.[env].[ext]";
4068
4070
  readonly "plugin:mp4": "veplayer.plugin.mp4.[env].[ext]";
4069
4071
  readonly "plugin:hls": "veplayer.plugin.hls.[env].[ext]";
4072
+ readonly "plugin:hlsjs": "veplayer.plugin.hlsjs.[env].[ext]";
4070
4073
  readonly "plugin:shaka": "veplayer.plugin.shaka.[env].[ext]";
4071
4074
  readonly "plugin:rtm": "veplayer.plugin.rtm.[env].[ext]";
4072
4075
  readonly "plugin:xgvideo": "veplayer.plugin.xgvideo.[env].[ext]";
@@ -4097,6 +4100,7 @@ declare namespace strategy {
4097
4100
  PluginFlv = "plugin:flv",
4098
4101
  PluginMp4 = "plugin:mp4",
4099
4102
  PluginHls = "plugin:hls",
4103
+ PluginHlsJs = "plugin:hlsjs",
4100
4104
  PluginShaka = "plugin:shaka",
4101
4105
  PluginRtm = "plugin:rtm",
4102
4106
  PluginXgvideo = "plugin:xgvideo",
@@ -4108,6 +4112,7 @@ declare namespace strategy {
4108
4112
  [DynamicModule.PluginFlv]: Exports;
4109
4113
  [DynamicModule.PluginMp4]: Exports;
4110
4114
  [DynamicModule.PluginHls]: Exports;
4115
+ [DynamicModule.PluginHlsJs]: Exports;
4111
4116
  [DynamicModule.PluginShaka]: Exports;
4112
4117
  [DynamicModule.PluginRtm]: Exports;
4113
4118
  [DynamicModule.PluginXgvideo]: Exports;
@@ -4149,7 +4154,7 @@ declare namespace strategy {
4149
4154
  }
4150
4155
  type StrategyCreator<T, R extends keyof ModulesMap = any> = (options?: T) => Strategy<T, R>;
4151
4156
  const createFlvMseStrategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginFlv>;
4152
- const createHlsMseStrategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginHls>;
4157
+ const createHlsMseStrategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginHls | DynamicModule.PluginHlsJs>;
4153
4158
  const createSoftDecodeH264Strategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginXgvideo>;
4154
4159
  const createSoftDecodeH265Strategy: StrategyCreator<VePlayerBaseOptions, DynamicModule.PluginXgvideo>;
4155
4160
  function getCodec(options: VePlayerBaseOptions): Promise<"unknown" | Codec>;
@@ -5579,6 +5584,8 @@ interface Hls {
5579
5584
  * @default false
5580
5585
  */
5581
5586
  enableMSE?: boolean;
5587
+ enableHlsJs?: boolean;
5588
+ hlsOpts?: any;
5582
5589
  }
5583
5590
  /** {zh}
5584
5591
  * @detail api
@@ -8942,6 +8949,7 @@ declare namespace live {
8942
8949
  readonly "plugin:flv": "veplayer.plugin.flv.[env].[ext]";
8943
8950
  readonly "plugin:mp4": "veplayer.plugin.mp4.[env].[ext]";
8944
8951
  readonly "plugin:hls": "veplayer.plugin.hls.[env].[ext]";
8952
+ readonly "plugin:hlsjs": "veplayer.plugin.hlsjs.[env].[ext]";
8945
8953
  readonly "plugin:shaka": "veplayer.plugin.shaka.[env].[ext]";
8946
8954
  readonly "plugin:rtm": "veplayer.plugin.rtm.[env].[ext]";
8947
8955
  readonly "plugin:xgvideo": "veplayer.plugin.xgvideo.[env].[ext]";
@@ -8972,6 +8980,7 @@ declare namespace live {
8972
8980
  PluginFlv = "plugin:flv",
8973
8981
  PluginMp4 = "plugin:mp4",
8974
8982
  PluginHls = "plugin:hls",
8983
+ PluginHlsJs = "plugin:hlsjs",
8975
8984
  PluginShaka = "plugin:shaka",
8976
8985
  PluginRtm = "plugin:rtm",
8977
8986
  PluginXgvideo = "plugin:xgvideo",
@@ -8983,6 +8992,7 @@ declare namespace live {
8983
8992
  [DynamicModule.PluginFlv]: Exports;
8984
8993
  [DynamicModule.PluginMp4]: Exports;
8985
8994
  [DynamicModule.PluginHls]: Exports;
8995
+ [DynamicModule.PluginHlsJs]: Exports;
8986
8996
  [DynamicModule.PluginShaka]: Exports;
8987
8997
  [DynamicModule.PluginRtm]: Exports;
8988
8998
  [DynamicModule.PluginXgvideo]: Exports;
@@ -10062,6 +10072,8 @@ declare namespace live {
10062
10072
  * @default false
10063
10073
  */
10064
10074
  enableMSE?: boolean;
10075
+ enableHlsJs?: boolean;
10076
+ hlsOpts?: any;
10065
10077
  }
10066
10078
  /** {zh}
10067
10079
  * @detail api
@@ -12478,6 +12478,7 @@ var __publicField = (obj, key, value) => {
12478
12478
  "plugin:flv": "veplayer.plugin.flv.[env].[ext]",
12479
12479
  "plugin:mp4": "veplayer.plugin.mp4.[env].[ext]",
12480
12480
  "plugin:hls": "veplayer.plugin.hls.[env].[ext]",
12481
+ "plugin:hlsjs": "veplayer.plugin.hlsjs.[env].[ext]",
12481
12482
  "plugin:shaka": "veplayer.plugin.shaka.[env].[ext]",
12482
12483
  "plugin:rtm": "veplayer.plugin.rtm.[env].[ext]",
12483
12484
  "plugin:xgvideo": "veplayer.plugin.xgvideo.[env].[ext]",
@@ -12489,6 +12490,7 @@ var __publicField = (obj, key, value) => {
12489
12490
  DynamicModule2["PluginFlv"] = "plugin:flv";
12490
12491
  DynamicModule2["PluginMp4"] = "plugin:mp4";
12491
12492
  DynamicModule2["PluginHls"] = "plugin:hls";
12493
+ DynamicModule2["PluginHlsJs"] = "plugin:hlsjs";
12492
12494
  DynamicModule2["PluginShaka"] = "plugin:shaka";
12493
12495
  DynamicModule2["PluginRtm"] = "plugin:rtm";
12494
12496
  DynamicModule2["PluginXgvideo"] = "plugin:xgvideo";
@@ -13436,10 +13438,6 @@ var __publicField = (obj, key, value) => {
13436
13438
  plugins.forEach((plugin) => {
13437
13439
  TopRightBar.isTopRightPlugin(plugin, options) ? topRightPlugins.push(plugin) : normalPlugins.push(plugin);
13438
13440
  });
13439
- window._veplayer_test_log["startxgplayer"] = {
13440
- msg: "start to new XGPlayer",
13441
- timestamp: performance.now()
13442
- };
13443
13441
  this._player = new Player({
13444
13442
  ...DEFAULT_OPTIONS,
13445
13443
  ...xgOptions,
@@ -18733,25 +18731,10 @@ var __publicField = (obj, key, value) => {
18733
18731
  if (!mseStrategy && !softStrategy) {
18734
18732
  return {};
18735
18733
  }
18736
- window._veplayer_test_log["beforefetch"] = {
18737
- msg: "start to load cdn",
18738
- timestamp: performance.now()
18739
- };
18740
18734
  const [mseModule, softModule] = await Promise.all([
18741
18735
  (mseStrategy == null ? void 0 : mseStrategy.module) && load(mseStrategy.module).catch(() => void 0),
18742
18736
  (softStrategy == null ? void 0 : softStrategy.module) && load(softStrategy.module).catch(() => void 0)
18743
18737
  ]);
18744
- if (mseModule) {
18745
- window._veplayer_test_log["fetched"] = {
18746
- msg: "cdn loaded",
18747
- timestamp: performance.now()
18748
- };
18749
- } else {
18750
- window._veplayer_test_log["fetched"] = {
18751
- msg: "cdn loaded but empty",
18752
- timestamp: performance.now()
18753
- };
18754
- }
18755
18738
  (softModule == null ? void 0 : softModule.XGVideoPlugin) && ((_c = softStrategy == null ? void 0 : softStrategy.afterLoad) == null ? void 0 : _c.call(softStrategy, softModule == null ? void 0 : softModule.XGVideoPlugin));
18756
18739
  const combineOptions$1 = combineOptions([mseStrategy, softStrategy]);
18757
18740
  const plugins = [];
@@ -18809,16 +18792,30 @@ var __publicField = (obj, key, value) => {
18809
18792
  module: DynamicModule.PluginFlv
18810
18793
  };
18811
18794
  };
18812
- const createHlsMseStrategy = (options) => ({
18813
- options: {
18814
- hls: {
18815
- retryCount: 0,
18816
- pollRetryCount: 0,
18817
- ...(options == null ? void 0 : options.hls) ?? {}
18818
- }
18819
- },
18820
- module: DynamicModule.PluginHls
18821
- });
18795
+ const createHlsMseStrategy = (options) => {
18796
+ var _a;
18797
+ if (options == null ? void 0 : options.hls.enableHlsJs) {
18798
+ return {
18799
+ options: {
18800
+ hlsJsPlugin: {
18801
+ hlsOpts: (_a = options == null ? void 0 : options.hls) == null ? void 0 : _a.hlsOpts
18802
+ }
18803
+ },
18804
+ module: DynamicModule.PluginHlsJs
18805
+ };
18806
+ } else {
18807
+ return {
18808
+ options: {
18809
+ hls: {
18810
+ retryCount: 0,
18811
+ pollRetryCount: 0,
18812
+ ...(options == null ? void 0 : options.hls) ?? {}
18813
+ }
18814
+ },
18815
+ module: DynamicModule.PluginHls
18816
+ };
18817
+ }
18818
+ };
18822
18819
  const createSoftDecodeH264Strategy = () => ({
18823
18820
  options: {
18824
18821
  mediaType: "xg-video",
@@ -21812,7 +21809,7 @@ var __publicField = (obj, key, value) => {
21812
21809
  user_id: this._userId,
21813
21810
  device_id: this._deviceId,
21814
21811
  ext: {
21815
- veplayer_version: "2.3.1-rc.0",
21812
+ veplayer_version: "2.3.1-rc.2",
21816
21813
  flv_version: "3.0.15-alpha.2",
21817
21814
  hls_version: "3.0.12",
21818
21815
  rts_version: "0.2.0-alpha.5"
@@ -22193,12 +22190,6 @@ var __publicField = (obj, key, value) => {
22193
22190
  async function createLivePlayer(options) {
22194
22191
  var _a, _b;
22195
22192
  let player = void 0;
22196
- window._veplayer_test_log = {
22197
- start: {
22198
- msg: "start to create veplayer",
22199
- timestamp: performance.now()
22200
- }
22201
- };
22202
22193
  if (!options || !options.url && !options.playlist) {
22203
22194
  throw create(ErrorCode.INVALID_PARAMETER, new VeI18n());
22204
22195
  }