@byteplus/veplayer 2.4.0 → 2.4.1-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/umd/veplayer.d.ts CHANGED
@@ -5920,6 +5920,20 @@ declare class VePlayerLive extends VePlayerBase {
5920
5920
  * @returns
5921
5921
  */
5922
5922
  getFLVStats(): FlvStats;
5923
+ /** {zh}
5924
+ * @brief 调用此方法开始播放 。
5925
+ */
5926
+ /** {en}
5927
+ * @brief Starts playback.
5928
+ */
5929
+ play(): any;
5930
+ /** {zh}
5931
+ * @brief 调用此方法暂停播放。
5932
+ */
5933
+ /** {en}
5934
+ * @brief Pauses playback.
5935
+ */
5936
+ pause(): void;
5923
5937
  }
5924
5938
  /** {zh}
5925
5939
  * @detail api
@@ -10730,6 +10744,20 @@ declare namespace live {
10730
10744
  * @returns
10731
10745
  */
10732
10746
  getFLVStats(): FlvStats;
10747
+ /** {zh}
10748
+ * @brief 调用此方法开始播放 。
10749
+ */
10750
+ /** {en}
10751
+ * @brief Starts playback.
10752
+ */
10753
+ play(): any;
10754
+ /** {zh}
10755
+ * @brief 调用此方法暂停播放。
10756
+ */
10757
+ /** {en}
10758
+ * @brief Pauses playback.
10759
+ */
10760
+ pause(): void;
10733
10761
  }
10734
10762
  /** {zh}
10735
10763
  * @detail api
@@ -1316,7 +1316,7 @@ var __publicField = (obj, key, value) => {
1316
1316
  android: /(Android)\s([\d.]+)/,
1317
1317
  ios: /(Version)\/([\d.]+)/
1318
1318
  };
1319
- var H264_MIMETYPES = ["avc1.42E01E, mp4a.40.2", "avc1.58A01E, mp4a.40.2", "avc1.4D401E, mp4a.40.2", "avc1.64001E, mp4a.40.2", "avc1.42E01E", "mp4v.20.8", "avc1.42E01E, mp4a.40.2", "avc1.58A01E, mp4a.40.2", "avc1.4D401E, mp4a.40.2", "avc1.64001E, mp4a.40.2", "mp4v.20.8, mp4a.40.2", "mp4v.20.240, mp4a.40.2"];
1319
+ var H264_MIMETYPES = ["avc1.42E01E, mp4a.40.2", "avc1.58A01E, mp4a.40.2", "avc1.4D401E, mp4a.40.2", "avc1.64001E, mp4a.40.2", "avc1.42E01E", "mp4v.20.8", "mp4v.20.8, mp4a.40.2", "mp4v.20.240, mp4a.40.2"];
1320
1320
  var sniffer$1 = {
1321
1321
  get device() {
1322
1322
  var r2 = sniffer$1.os;
@@ -1461,7 +1461,7 @@ var __publicField = (obj, key, value) => {
1461
1461
  }
1462
1462
  }
1463
1463
  };
1464
- var version = "3.0.19-rc.0";
1464
+ var version = "3.0.20-rc.3";
1465
1465
  var ERROR_TYPE_MAP = {
1466
1466
  1: "media",
1467
1467
  2: "media",
@@ -3421,7 +3421,7 @@ var __publicField = (obj, key, value) => {
3421
3421
  if (!this.observer) {
3422
3422
  return;
3423
3423
  }
3424
- this.observer && this.observer.observe(target);
3424
+ this.observer.observe(target);
3425
3425
  var _pid = target.getAttribute(PLATER_ID);
3426
3426
  var __handlers = this.__handlers;
3427
3427
  var index = -1;
@@ -3450,16 +3450,17 @@ var __publicField = (obj, key, value) => {
3450
3450
  }
3451
3451
  });
3452
3452
  try {
3453
- this.observer && this.observer.unobserve(target);
3453
+ var _this$observer;
3454
+ (_this$observer = this.observer) === null || _this$observer === void 0 ? void 0 : _this$observer.unobserve(target);
3454
3455
  } catch (e2) {
3455
3456
  }
3456
- this.observer && this.observer.unobserve(target);
3457
3457
  i2 > -1 && this.__handlers.splice(i2, 1);
3458
3458
  }
3459
3459
  }, {
3460
3460
  key: "destroyObserver",
3461
3461
  value: function destroyObserver() {
3462
- this.observer && this.observer.disconnect();
3462
+ var _this$observer2;
3463
+ (_this$observer2 = this.observer) === null || _this$observer2 === void 0 ? void 0 : _this$observer2.disconnect();
3463
3464
  this.observer = null;
3464
3465
  this.__handlers = null;
3465
3466
  }
@@ -3491,7 +3492,8 @@ var __publicField = (obj, key, value) => {
3491
3492
  return resizeObserver;
3492
3493
  }
3493
3494
  function unObserver(target, handler) {
3494
- resizeObserver.unObserver(target, handler);
3495
+ var _resizeObserver;
3496
+ (_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 ? void 0 : _resizeObserver.unObserver(target, handler);
3495
3497
  }
3496
3498
  var pluginsManager = {
3497
3499
  pluginGroup: {},
@@ -4489,10 +4491,7 @@ var __publicField = (obj, key, value) => {
4489
4491
  }
4490
4492
  var _this$config = _this.config, autoplay2 = _this$config.autoplay, defaultPlaybackRate = _this$config.defaultPlaybackRate;
4491
4493
  XG_DEBUG.logInfo("player", "canPlayFunc, startTime", _this.__startTime);
4492
- if (_this.__startTime > 0 && _this.duration > 0) {
4493
- _this.currentTime = _this.__startTime > _this.duration ? _this.duration : _this.__startTime;
4494
- _this.__startTime = -1;
4495
- }
4494
+ _this._seekToStartTime();
4496
4495
  _this.playbackRate = defaultPlaybackRate;
4497
4496
  (autoplay2 || _this._useAutoplay) && _this.mediaPlay();
4498
4497
  _this.off(CANPLAY, _this.canPlayFunc);
@@ -5114,10 +5113,7 @@ var __publicField = (obj, key, value) => {
5114
5113
  reject(e2);
5115
5114
  };
5116
5115
  var _canplay = function _canplay2() {
5117
- if (_this9.duration > 0 && _this9.__startTime > 0) {
5118
- _this9.currentTime = _this9.__startTime;
5119
- _this9.__startTime = -1;
5120
- }
5116
+ _this9._seekToStartTime();
5121
5117
  if (isPaused) {
5122
5118
  _this9.pause();
5123
5119
  }
@@ -5738,11 +5734,17 @@ var __publicField = (obj, key, value) => {
5738
5734
  }, {
5739
5735
  key: "onLoadeddata",
5740
5736
  value: function onLoadeddata() {
5737
+ var _this22 = this;
5741
5738
  this.isError = false;
5742
5739
  this.isSeeking = false;
5743
- if (this.__startTime > 0 && this.duration > 0) {
5744
- this.currentTime = this.__startTime;
5745
- this.__startTime = -1;
5740
+ if (this.__startTime > 0) {
5741
+ if (this.duration > 0) {
5742
+ this._seekToStartTime();
5743
+ } else {
5744
+ this.once(DURATION_CHANGE, function() {
5745
+ _this22._seekToStartTime();
5746
+ });
5747
+ }
5746
5748
  }
5747
5749
  }
5748
5750
  }, {
@@ -5811,27 +5813,27 @@ var __publicField = (obj, key, value) => {
5811
5813
  }, {
5812
5814
  key: "onWaiting",
5813
5815
  value: function onWaiting() {
5814
- var _this22 = this;
5816
+ var _this23 = this;
5815
5817
  if (this.waitTimer) {
5816
5818
  util$1.clearTimeout(this, this.waitTimer);
5817
5819
  }
5818
5820
  this.updateAcc("waiting");
5819
5821
  this.waitTimer = util$1.setTimeout(this, function() {
5820
- _this22.addClass(STATE_CLASS.LOADING);
5821
- _this22.emit(LOADING);
5822
- util$1.clearTimeout(_this22, _this22.waitTimer);
5823
- _this22.waitTimer = null;
5822
+ _this23.addClass(STATE_CLASS.LOADING);
5823
+ _this23.emit(LOADING);
5824
+ util$1.clearTimeout(_this23, _this23.waitTimer);
5825
+ _this23.waitTimer = null;
5824
5826
  }, this.config.minWaitDelay);
5825
5827
  }
5826
5828
  }, {
5827
5829
  key: "onPlaying",
5828
5830
  value: function onPlaying() {
5829
- var _this23 = this;
5831
+ var _this24 = this;
5830
5832
  this.isError = false;
5831
5833
  var NO_START = STATE_CLASS.NO_START, PAUSED = STATE_CLASS.PAUSED, ENDED2 = STATE_CLASS.ENDED, ERROR2 = STATE_CLASS.ERROR, REPLAY2 = STATE_CLASS.REPLAY, LOADING2 = STATE_CLASS.LOADING;
5832
5834
  var clsList = [NO_START, PAUSED, ENDED2, ERROR2, REPLAY2, LOADING2];
5833
5835
  clsList.forEach(function(cls) {
5834
- _this23.removeClass(cls);
5836
+ _this24.removeClass(cls);
5835
5837
  });
5836
5838
  if (!this._accPlayed.t && !this.paused && !this.ended) {
5837
5839
  this._accPlayed.t = (/* @__PURE__ */ new Date()).getTime();
@@ -5992,14 +5994,14 @@ var __publicField = (obj, key, value) => {
5992
5994
  }, {
5993
5995
  key: "setConfig",
5994
5996
  value: function setConfig(config) {
5995
- var _this24 = this;
5997
+ var _this25 = this;
5996
5998
  if (!config) {
5997
5999
  return;
5998
6000
  }
5999
6001
  Object.keys(config).map(function(key) {
6000
6002
  if (key !== "plugins") {
6001
- _this24.config[key] = config[key];
6002
- var plugin = _this24.plugins[key.toLowerCase()];
6003
+ _this25.config[key] = config[key];
6004
+ var plugin = _this25.plugins[key.toLowerCase()];
6003
6005
  if (plugin && util$1.typeOf(plugin.setConfig) === "Function") {
6004
6006
  plugin.setConfig(config[key]);
6005
6007
  }
@@ -6009,20 +6011,20 @@ var __publicField = (obj, key, value) => {
6009
6011
  }, {
6010
6012
  key: "playNext",
6011
6013
  value: function playNext(config) {
6012
- var _this25 = this;
6014
+ var _this26 = this;
6013
6015
  this.resetState();
6014
6016
  this.setConfig(config);
6015
6017
  this._currentTime = 0;
6016
6018
  this._duration = 0;
6017
6019
  runHooks(this, "playnext", function() {
6018
- _this25.start();
6019
- _this25.emit(PLAYNEXT, config);
6020
+ _this26.start();
6021
+ _this26.emit(PLAYNEXT, config);
6020
6022
  });
6021
6023
  }
6022
6024
  }, {
6023
6025
  key: "resize",
6024
6026
  value: function resize() {
6025
- var _this26 = this;
6027
+ var _this27 = this;
6026
6028
  if (!this.media) {
6027
6029
  return;
6028
6030
  }
@@ -6062,7 +6064,7 @@ var __publicField = (obj, key, value) => {
6062
6064
  }
6063
6065
  if (!this.fullscreen && !this.cssfullscreen) {
6064
6066
  Object.keys(_style).forEach(function(key) {
6065
- _this26.root.style[key] = _style[key];
6067
+ _this27.root.style[key] = _style[key];
6066
6068
  });
6067
6069
  }
6068
6070
  if (videoFillMode === "fillHeight" && fit < videoFit || videoFillMode === "fillWidth" && fit > videoFit) {
@@ -6104,6 +6106,14 @@ var __publicField = (obj, key, value) => {
6104
6106
  url
6105
6107
  };
6106
6108
  }
6109
+ }, {
6110
+ key: "_seekToStartTime",
6111
+ value: function _seekToStartTime() {
6112
+ if (this.__startTime > 0 && this.duration > 0) {
6113
+ this.currentTime = this.__startTime > this.duration ? this.duration : this.__startTime;
6114
+ this.__startTime = -1;
6115
+ }
6116
+ }
6107
6117
  }, {
6108
6118
  key: "state",
6109
6119
  get: function get() {
@@ -6154,15 +6164,15 @@ var __publicField = (obj, key, value) => {
6154
6164
  return this.config.definition.list || [];
6155
6165
  },
6156
6166
  set: function set(list) {
6157
- var _this27 = this;
6167
+ var _this28 = this;
6158
6168
  var definition = this.config.definition;
6159
6169
  var curDef = null;
6160
6170
  var targetDef = null;
6161
6171
  definition.list = list;
6162
6172
  this.emit("resourceReady", list);
6163
6173
  list.forEach(function(item) {
6164
- var _this27$curDefinition;
6165
- if (((_this27$curDefinition = _this27.curDefinition) === null || _this27$curDefinition === void 0 ? void 0 : _this27$curDefinition.definition) === item.definition) {
6174
+ var _this28$curDefinition;
6175
+ if (((_this28$curDefinition = _this28.curDefinition) === null || _this28$curDefinition === void 0 ? void 0 : _this28$curDefinition.definition) === item.definition) {
6166
6176
  curDef = item;
6167
6177
  }
6168
6178
  if (definition.defaultDefinition === item.definition) {
@@ -8447,7 +8457,7 @@ var __publicField = (obj, key, value) => {
8447
8457
  }
8448
8458
  this.on(DURATION_CHANGE, function() {
8449
8459
  var player2 = _this2.player, config2 = _this2.config;
8450
- if (player2.duration * 1e3 < config2.moveDuration) {
8460
+ if (player2.duration > 0 && player2.duration * 1e3 < config2.moveDuration) {
8451
8461
  config2.moveDuration = player2.duration * 1e3;
8452
8462
  }
8453
8463
  });
@@ -8761,10 +8771,13 @@ var __publicField = (obj, key, value) => {
8761
8771
  }, {
8762
8772
  key: "updateBrightness",
8763
8773
  value: function updateBrightness(percent) {
8774
+ var pos = this.pos, config = this.config, xgMask = this.xgMask;
8775
+ if (!config.darkness) {
8776
+ return;
8777
+ }
8764
8778
  if (this.player.rotateDeg) {
8765
8779
  percent = -percent;
8766
8780
  }
8767
- var pos = this.pos, config = this.config, xgMask = this.xgMask;
8768
8781
  var light = pos.light + 0.8 * percent;
8769
8782
  light = light > config.maxDarkness ? config.maxDarkness : light < 0 ? 0 : light;
8770
8783
  if (xgMask) {
@@ -13746,7 +13759,7 @@ var __publicField = (obj, key, value) => {
13746
13759
  * @returns
13747
13760
  */
13748
13761
  get playerVersion() {
13749
- return "2.4.0";
13762
+ return "2.4.1-rc.1";
13750
13763
  }
13751
13764
  /** {zh}
13752
13765
  * @brief 获取当前播放视频的清晰度唯一标识(definition)。
@@ -19067,6 +19080,29 @@ var __publicField = (obj, key, value) => {
19067
19080
  return RtmPlugin.isSupportedH264();
19068
19081
  return false;
19069
19082
  }
19083
+ const getAbrStrategy = async (options) => {
19084
+ var _a, _b;
19085
+ const streamType = options.url && getStreamType(options.url);
19086
+ if (streamType === "rtm") {
19087
+ return {};
19088
+ }
19089
+ const abrOptions = streamType === "flv" ? (_a = options == null ? void 0 : options.flv) == null ? void 0 : _a.abr : (_b = options == null ? void 0 : options.hls) == null ? void 0 : _b.abr;
19090
+ if (!abrOptions) {
19091
+ return {};
19092
+ }
19093
+ const abrPlugin = await load(DynamicModule.PluginAbr).catch(() => void 0);
19094
+ return {
19095
+ options: {
19096
+ [streamType === "flv" ? "abr" : "hlsabr"]: {
19097
+ ...abrOptions,
19098
+ open: abrOptions.enable ?? true
19099
+ }
19100
+ },
19101
+ plugins: [
19102
+ streamType === "flv" ? abrPlugin == null ? void 0 : abrPlugin.AbrPlugin : abrPlugin == null ? void 0 : abrPlugin.HlsAbrPlugin
19103
+ ]
19104
+ };
19105
+ };
19070
19106
  const rtmStrategy = {
19071
19107
  options: {},
19072
19108
  module: DynamicModule.PluginRtm
@@ -19081,6 +19117,8 @@ var __publicField = (obj, key, value) => {
19081
19117
  const getRtmStrategy = async (options, player) => {
19082
19118
  var _a;
19083
19119
  let backupStrategy;
19120
+ let backupOptions = {};
19121
+ let backupModule = [];
19084
19122
  const { url } = options;
19085
19123
  const {
19086
19124
  fallbackUrl,
@@ -19095,7 +19133,7 @@ var __publicField = (obj, key, value) => {
19095
19133
  } else if (backupType === "hls" && (sniffer$1.device !== "mobile" || ((_a = options == null ? void 0 : options.hls) == null ? void 0 : _a.enableMSE)) && util.isMseSupported(Codec.H264)) {
19096
19134
  backupStrategy = createHlsMseStrategy(options);
19097
19135
  }
19098
- const [rtmCdn, backupCdn] = await Promise.all([
19136
+ const [rtmCdn, backupCdn, backupAbr] = await Promise.all([
19099
19137
  load(rtmStrategy.module).then((module2) => {
19100
19138
  return module2.RtmPlugin;
19101
19139
  }).catch(() => void 0),
@@ -19105,8 +19143,18 @@ var __publicField = (obj, key, value) => {
19105
19143
  } else if ((backupStrategy == null ? void 0 : backupStrategy.module) === DynamicModule.PluginHls) {
19106
19144
  return module2.HlsPlugin;
19107
19145
  }
19108
- }).catch(() => void 0)
19146
+ }).catch(() => void 0),
19147
+ getAbrStrategy({ ...options, url: actualFallbackUrl }).catch(
19148
+ () => void 0
19149
+ )
19109
19150
  ]);
19151
+ if (backupType) {
19152
+ backupOptions = {
19153
+ ...backupStrategy == null ? void 0 : backupStrategy.options,
19154
+ ...backupAbr == null ? void 0 : backupAbr.options
19155
+ };
19156
+ backupModule = [backupCdn, ...(backupAbr == null ? void 0 : backupAbr.plugins) ?? []];
19157
+ }
19110
19158
  const [RTMSupported, RTMSupportCodec] = await Promise.all([
19111
19159
  isRTMSupported(),
19112
19160
  isRTMSupportCodec()
@@ -19124,7 +19172,7 @@ var __publicField = (obj, key, value) => {
19124
19172
  }
19125
19173
  return {
19126
19174
  options: {
19127
- ...(backupStrategy == null ? void 0 : backupStrategy.options) || {},
19175
+ ...backupOptions || {},
19128
19176
  url: actualFallbackUrl,
19129
19177
  _RTMdegrade: {
19130
19178
  _originRtmUrl: url,
@@ -19132,19 +19180,19 @@ var __publicField = (obj, key, value) => {
19132
19180
  _isRTMSupportCodec: RTMSupportCodec
19133
19181
  }
19134
19182
  },
19135
- plugins: backupCdn ? [backupCdn] : []
19183
+ plugins: backupModule
19136
19184
  };
19137
19185
  }
19138
19186
  return {
19139
19187
  options: {
19140
- ...(backupStrategy == null ? void 0 : backupStrategy.options) || {},
19188
+ ...backupOptions || {},
19141
19189
  url: enableRTMAutoTranscode ? util.appendSearchParams(url, { enableRTMAutoTranscode: "true" }) : void 0,
19142
19190
  _RTMdegrade: void 0,
19143
19191
  rts: {
19144
19192
  retryCount: 0,
19145
19193
  ...ret,
19146
19194
  backupURL: actualFallbackUrl,
19147
- backupConstruct: backupCdn
19195
+ backupConstruct: backupModule
19148
19196
  }
19149
19197
  },
19150
19198
  plugins: rtmCdn ? [rtmCdn] : []
@@ -21998,10 +22046,10 @@ var __publicField = (obj, key, value) => {
21998
22046
  user_id: this._userId,
21999
22047
  device_id: this._deviceId,
22000
22048
  ext: {
22001
- veplayer_version: "2.4.0",
22002
- flv_version: "3.0.19-rc.0",
22003
- hls_version: "3.0.19-rc.0",
22004
- rts_version: "0.2.1-alpha.0"
22049
+ veplayer_version: "2.4.1-rc.1",
22050
+ flv_version: "3.0.20-rc.3",
22051
+ hls_version: "3.0.20-rc.3",
22052
+ rts_version: "0.2.1-alpha.1"
22005
22053
  }
22006
22054
  });
22007
22055
  }
@@ -22295,29 +22343,6 @@ var __publicField = (obj, key, value) => {
22295
22343
  }
22296
22344
  return {};
22297
22345
  };
22298
- const getAbrStrategy = async (options) => {
22299
- var _a, _b;
22300
- const streamType = options.url && getStreamType(options.url);
22301
- if (streamType === "rtm") {
22302
- return {};
22303
- }
22304
- const abrOptions = streamType === "flv" ? (_a = options == null ? void 0 : options.flv) == null ? void 0 : _a.abr : (_b = options == null ? void 0 : options.hls) == null ? void 0 : _b.abr;
22305
- if (!abrOptions) {
22306
- return {};
22307
- }
22308
- const abrPlugin = await load(DynamicModule.PluginAbr).catch(() => void 0);
22309
- return {
22310
- options: {
22311
- [streamType === "flv" ? "abr" : "hlsabr"]: {
22312
- ...abrOptions,
22313
- open: abrOptions.enable ?? true
22314
- }
22315
- },
22316
- plugins: [
22317
- streamType === "flv" ? abrPlugin == null ? void 0 : abrPlugin.AbrPlugin : abrPlugin == null ? void 0 : abrPlugin.HlsAbrPlugin
22318
- ]
22319
- };
22320
- };
22321
22346
  VeI18n.extend([
22322
22347
  {
22323
22348
  LANG: "zh-cn",
@@ -22489,6 +22514,28 @@ var __publicField = (obj, key, value) => {
22489
22514
  var _a, _b, _c;
22490
22515
  return (_c = (_b = (_a = this._player) == null ? void 0 : _a.plugins) == null ? void 0 : _b.flv) == null ? void 0 : _c.getStats();
22491
22516
  }
22517
+ /** {zh}
22518
+ * @brief 调用此方法开始播放 。
22519
+ */
22520
+ /** {en}
22521
+ * @brief Starts playback.
22522
+ */
22523
+ play() {
22524
+ this.openAbr();
22525
+ /* istanbul ignore next -- @preserve */
22526
+ return this._player.play();
22527
+ }
22528
+ /** {zh}
22529
+ * @brief 调用此方法暂停播放。
22530
+ */
22531
+ /** {en}
22532
+ * @brief Pauses playback.
22533
+ */
22534
+ pause() {
22535
+ this.closeAbr();
22536
+ /* istanbul ignore next -- @preserve */
22537
+ return this._player.pause();
22538
+ }
22492
22539
  }
22493
22540
  async function createLivePlayer(options) {
22494
22541
  var _a, _b;
@@ -5920,6 +5920,20 @@ declare class VePlayerLive extends VePlayerBase {
5920
5920
  * @returns
5921
5921
  */
5922
5922
  getFLVStats(): FlvStats;
5923
+ /** {zh}
5924
+ * @brief 调用此方法开始播放 。
5925
+ */
5926
+ /** {en}
5927
+ * @brief Starts playback.
5928
+ */
5929
+ play(): any;
5930
+ /** {zh}
5931
+ * @brief 调用此方法暂停播放。
5932
+ */
5933
+ /** {en}
5934
+ * @brief Pauses playback.
5935
+ */
5936
+ pause(): void;
5923
5937
  }
5924
5938
  /** {zh}
5925
5939
  * @detail api
@@ -10730,6 +10744,20 @@ declare namespace live {
10730
10744
  * @returns
10731
10745
  */
10732
10746
  getFLVStats(): FlvStats;
10747
+ /** {zh}
10748
+ * @brief 调用此方法开始播放 。
10749
+ */
10750
+ /** {en}
10751
+ * @brief Starts playback.
10752
+ */
10753
+ play(): any;
10754
+ /** {zh}
10755
+ * @brief 调用此方法暂停播放。
10756
+ */
10757
+ /** {en}
10758
+ * @brief Pauses playback.
10759
+ */
10760
+ pause(): void;
10733
10761
  }
10734
10762
  /** {zh}
10735
10763
  * @detail api