@volcengine/veplayer-plugin 2.4.3-rc.0 → 2.4.3-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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volcengine/veplayer-plugin",
3
- "version": "2.4.3-rc.0",
3
+ "version": "2.4.3-rc.1",
4
4
  "main": "./umd/index.production.js",
5
5
  "module": "./esm/index.production.js",
6
6
  "browser": "./umd/index.production.js",
@@ -12658,6 +12658,31 @@
12658
12658
  }]);
12659
12659
  return MediaSegmentKey2;
12660
12660
  }();
12661
+ var HlsUrlParameters = /* @__PURE__ */ function() {
12662
+ function HlsUrlParameters2(msn, part, skip) {
12663
+ _classCallCheck$3(this, HlsUrlParameters2);
12664
+ this.msn = msn;
12665
+ this.part = part;
12666
+ this.skip = skip;
12667
+ }
12668
+ _createClass$3(HlsUrlParameters2, [{
12669
+ key: "addDirectives",
12670
+ value: function addDirectives(uri) {
12671
+ var url = new self.URL(uri);
12672
+ if (this.msn !== void 0) {
12673
+ url.searchParams.set("_HLS_msn", this.msn.toString());
12674
+ }
12675
+ if (this.part) {
12676
+ url.searchParams.set("_HLS_part", this.part.toString());
12677
+ }
12678
+ if (this.skip) {
12679
+ url.searchParams.set("_HLS_skip", this.skip);
12680
+ }
12681
+ return url.href;
12682
+ }
12683
+ }]);
12684
+ return HlsUrlParameters2;
12685
+ }();
12661
12686
  var REGEXP_TAG = /^#(EXT[^:]*)(?::(.*))?$/;
12662
12687
  var REGEXP_ATTR = /([^=]+)=(?:"([^"]*)"|([^",]*))(?:,|$)/g;
12663
12688
  var REGEXP_ABSOLUTE_URL = /^(?:[a-zA-Z0-9+\-.]+:)?\/\//;
@@ -12896,7 +12921,7 @@
12896
12921
  media.canBlockReload = _attr["CAN-BLOCK-RELOAD"] === "YES";
12897
12922
  media.partHoldBack = parseFloat(_attr["PART-HOLD-BACK"] || 0);
12898
12923
  media.canSkipUntil = parseFloat(_attr["CAN-SKIP-UNTIL"] || 0);
12899
- media.canSkipDateRanges = _attr["CAN-SKIP-DATERANGES"] === "YES";
12924
+ media.canSkipDateRanges = media.canSkipUntil > 0 && _attr["CAN-SKIP-DATERANGES"] === "YES";
12900
12925
  }
12901
12926
  break;
12902
12927
  case "ENDLIST":
@@ -12940,6 +12965,15 @@
12940
12965
  }
12941
12966
  break;
12942
12967
  case "PRELOAD-HINT":
12968
+ {
12969
+ var _attr3 = parseAttr(data);
12970
+ media.preloadHint = _attr3;
12971
+ if (_attr3["TYPE"] === "PART" && _attr3["URI"]) {
12972
+ var tmp = _attr3["URI"].split(".ts")[0].split("-");
12973
+ media.nextSN = tmp[3];
12974
+ media.nextIndex = tmp[tmp.length - 1];
12975
+ }
12976
+ }
12943
12977
  break;
12944
12978
  case "PROGRAM-DATE-TIME":
12945
12979
  curSegment.dataTime = data;
@@ -12959,21 +12993,21 @@
12959
12993
  break;
12960
12994
  case "KEY":
12961
12995
  {
12962
- var _attr3 = parseAttr(data);
12963
- if (_attr3.METHOD === "NONE") {
12996
+ var _attr4 = parseAttr(data);
12997
+ if (_attr4.METHOD === "NONE") {
12964
12998
  curKey = null;
12965
12999
  break;
12966
13000
  }
12967
13001
  curKey = new MediaSegmentKey();
12968
- curKey.method = _attr3.METHOD;
12969
- curKey.url = /^blob:/.test(_attr3.URI) ? _attr3.URI : getAbsoluteUrl(_attr3.URI, parentUrl);
12970
- curKey.keyFormat = _attr3.KEYFORMAT || "identity";
12971
- curKey.keyFormatVersions = _attr3.KEYFORMATVERSIONS;
13002
+ curKey.method = _attr4.METHOD;
13003
+ curKey.url = /^blob:/.test(_attr4.URI) ? _attr4.URI : getAbsoluteUrl(_attr4.URI, parentUrl);
13004
+ curKey.keyFormat = _attr4.KEYFORMAT || "identity";
13005
+ curKey.keyFormatVersions = _attr4.KEYFORMATVERSIONS;
12972
13006
  if (!curKey.isSupported()) {
12973
- throw new Error("encrypt ".concat(_attr3.METHOD, "/").concat(_attr3.KEYFORMAT, " is not supported"));
13007
+ throw new Error("encrypt ".concat(_attr4.METHOD, "/").concat(_attr4.KEYFORMAT, " is not supported"));
12974
13008
  }
12975
- if (_attr3.IV) {
12976
- var str = _attr3.IV.slice(2);
13009
+ if (_attr4.IV) {
13010
+ var str = _attr4.IV.slice(2);
12977
13011
  str = (str.length & 1 ? "0" : "") + str;
12978
13012
  curKey.iv = new Uint8Array(str.length / 2);
12979
13013
  for (var i = 0, l = str.length / 2; i < l; i++) {
@@ -12984,10 +13018,10 @@
12984
13018
  break;
12985
13019
  case "MAP":
12986
13020
  {
12987
- var _attr4 = parseAttr(data);
12988
- curSegment.url = getAbsoluteUrl(_attr4.URI, parentUrl);
12989
- if (_attr4.BYTERANGE)
12990
- curSegment.setByteRange(_attr4.BYTERANGE);
13021
+ var _attr5 = parseAttr(data);
13022
+ curSegment.url = getAbsoluteUrl(_attr5.URI, parentUrl);
13023
+ if (_attr5.BYTERANGE)
13024
+ curSegment.setByteRange(_attr5.BYTERANGE);
12991
13025
  curSegment.isInitSegment = true;
12992
13026
  curSegment.sn = 0;
12993
13027
  if (curKey) {
@@ -12999,24 +13033,25 @@
12999
13033
  break;
13000
13034
  case "SKIP":
13001
13035
  {
13002
- var _attr5 = parseAttr(data);
13003
- var skippedSegments = parseInt(_attr5["SKIPPED-SEGMENTS"], 10);
13036
+ var _attr6 = parseAttr(data);
13037
+ var skippedSegments = parseInt(_attr6["SKIPPED-SEGMENTS"], 10);
13004
13038
  if (skippedSegments <= Number.MAX_SAFE_INTEGER) {
13005
13039
  media.skippedSegments += skippedSegments;
13040
+ curSN += skippedSegments;
13006
13041
  }
13007
13042
  }
13008
13043
  break;
13009
13044
  case "DATERANGE":
13010
13045
  {
13011
- var _attr6 = parseAttr(data);
13012
- var dateRangeWithSameId = media.dateRanges[_attr6.ID];
13013
- _attr6._startDate = dateRangeWithSameId ? dateRangeWithSameId._startDate : new Date(_attr6["START-DATE"]);
13014
- var endDate = (dateRangeWithSameId === null || dateRangeWithSameId === void 0 ? void 0 : dateRangeWithSameId._endDate) || new Date(_attr6.END_DATE);
13046
+ var _attr7 = parseAttr(data);
13047
+ var dateRangeWithSameId = media.dateRanges[_attr7.ID];
13048
+ _attr7._startDate = dateRangeWithSameId ? dateRangeWithSameId._startDate : new Date(_attr7["START-DATE"]);
13049
+ var endDate = (dateRangeWithSameId === null || dateRangeWithSameId === void 0 ? void 0 : dateRangeWithSameId._endDate) || new Date(_attr7.END_DATE);
13015
13050
  if (Number.isFinite(endDate)) {
13016
- _attr6._endDate = endDate;
13051
+ _attr7._endDate = endDate;
13017
13052
  }
13018
- if (isValidDaterange(_attr6, dateRangeWithSameId) || media.skippedSegments) {
13019
- media.dateRanges[_attr6.ID] = _attr6;
13053
+ if (isValidDaterange(_attr7, dateRangeWithSameId) || media.skippedSegments) {
13054
+ media.dateRanges[_attr7.ID] = _attr7;
13020
13055
  }
13021
13056
  }
13022
13057
  break;
@@ -13213,6 +13248,13 @@
13213
13248
  playlist
13214
13249
  });
13215
13250
  } else {
13251
+ if (this._useLowLatency) {
13252
+ if (playlist.canBlockReload) {
13253
+ this.deliveryDirectives = new HlsUrlParameters(playlist.nextSN, playlist.nextIndex, "");
13254
+ } else {
13255
+ this.deliveryDirectives = null;
13256
+ }
13257
+ }
13216
13258
  this.hls.emit(Event$1.HLS_LEVEL_LOADED, {
13217
13259
  playlist
13218
13260
  });
@@ -13269,41 +13311,45 @@
13269
13311
  var retryCount = this.hls.config.pollRetryCount;
13270
13312
  var fn = /* @__PURE__ */ function() {
13271
13313
  var _ref2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee2() {
13272
- var res;
13314
+ var reqUrl, res;
13273
13315
  return _regeneratorRuntime$1().wrap(function _callee2$(_context2) {
13274
13316
  while (1)
13275
13317
  switch (_context2.prev = _context2.next) {
13276
13318
  case 0:
13277
13319
  clearTimeout(_this2._timer);
13278
- _context2.prev = 1;
13279
- _context2.next = 4;
13280
- return _this2.load(url, audioUrl, subtitleUrl);
13281
- case 4:
13320
+ reqUrl = url;
13321
+ _context2.prev = 2;
13322
+ if (_this2.deliveryDirectives) {
13323
+ reqUrl = _this2.deliveryDirectives.addDirectives(url);
13324
+ }
13325
+ _context2.next = 6;
13326
+ return _this2.load(reqUrl, audioUrl, subtitleUrl);
13327
+ case 6:
13282
13328
  res = _context2.sent;
13283
13329
  if (res[0]) {
13284
- _context2.next = 7;
13330
+ _context2.next = 9;
13285
13331
  break;
13286
13332
  }
13287
13333
  return _context2.abrupt("return");
13288
- case 7:
13334
+ case 9:
13289
13335
  retryCount = _this2.hls.config.pollRetryCount;
13290
13336
  cb(res[0], res[1], res[2]);
13291
- _context2.next = 15;
13337
+ _context2.next = 17;
13292
13338
  break;
13293
- case 11:
13294
- _context2.prev = 11;
13295
- _context2.t0 = _context2["catch"](1);
13339
+ case 13:
13340
+ _context2.prev = 13;
13341
+ _context2.t0 = _context2["catch"](2);
13296
13342
  retryCount--;
13297
13343
  if (retryCount <= 0) {
13298
13344
  errorCb(_context2.t0);
13299
13345
  }
13300
- case 15:
13346
+ case 17:
13301
13347
  _this2._timer = setTimeout(fn, time);
13302
- case 16:
13348
+ case 18:
13303
13349
  case "end":
13304
13350
  return _context2.stop();
13305
13351
  }
13306
- }, _callee2, null, [[1, 11]]);
13352
+ }, _callee2, null, [[2, 13]]);
13307
13353
  }));
13308
13354
  return function fn2() {
13309
13355
  return _ref2.apply(this, arguments);
@@ -13833,7 +13879,7 @@
13833
13879
  }, {
13834
13880
  key: "clearOldSegment",
13835
13881
  value: function clearOldSegment() {
13836
- var maxPlaylistSize = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 50;
13882
+ var maxPlaylistSize = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.hls.config.maxPlaylistSize || 50;
13837
13883
  var stream = this.currentStream;
13838
13884
  if (!this.dvrWindow || !stream)
13839
13885
  return;
@@ -14344,7 +14390,6 @@
14344
14390
  return;
14345
14391
  _this._startTick();
14346
14392
  var media = _this.media;
14347
- var buffered = Buffer$1.get(media);
14348
14393
  var segLoaderError = _this._segmentLoader.error;
14349
14394
  _this._onCheckQuotaExceeded();
14350
14395
  if (_this._isProcessQuotaExceeded) {
@@ -14361,7 +14406,7 @@
14361
14406
  }
14362
14407
  return;
14363
14408
  }
14364
- if (Buffer$1.end(buffered) >= 0.1 && media.readyState) {
14409
+ if (media.readyState) {
14365
14410
  if (isMediaPlaying(media)) {
14366
14411
  _this._loadSegment();
14367
14412
  if (_this._gapService) {
@@ -15514,7 +15559,7 @@
15514
15559
  }]);
15515
15560
  return Hls2;
15516
15561
  }(EventEmitter);
15517
- _defineProperty$3(Hls, "version", "3.0.20-rc.6");
15562
+ _defineProperty$3(Hls, "version", "3.0.20-alpha.3");
15518
15563
  try {
15519
15564
  if (localStorage.getItem("xgd")) {
15520
15565
  Hls.enableLogger();