ckplayer-plus 1.1.1 → 1.1.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/dist/react.cjs CHANGED
@@ -210,7 +210,7 @@ var require_ckplayer = __commonJS({
210
210
  cdnFallback: true
211
211
  // getPath 失败时是否回退到 jsDelivr(内网可设 false,并配置 pluginPath)
212
212
  };
213
- var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.1/dist/";
213
+ var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.2/dist/";
214
214
  function ckplayerEmbed(videoObj) {
215
215
  var rightMenu = [
216
216
  {
@@ -432,7 +432,7 @@ var require_ckplayer = __commonJS({
432
432
  }
433
433
  var allowCdn = !vars || vars["cdnFallback"] !== false;
434
434
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
435
- if (!allowCdn || !cdn || cdn.indexOf("1.1.1") > -1) {
435
+ if (!allowCdn || !cdn || cdn.indexOf("1.1.2") > -1) {
436
436
  return folder + "/" + file;
437
437
  }
438
438
  if (cdn.slice(-1) !== "/") {
@@ -842,17 +842,30 @@ var require_ckplayer = __commonJS({
842
842
  seekTime = resumeAt;
843
843
  hlsResumeTarget = resumeAt;
844
844
  hlsResumeWarmup = true;
845
- hlsConf.startPosition = hlsPriorLoadTime(resumeAt);
846
845
  }
847
846
  hls = new Hls(hlsConf);
848
847
  hls.loadSource(url);
849
848
  hls.attachMedia(video);
850
849
  hls.on(Hls.Events.MANIFEST_PARSED, function() {
851
850
  if (hlsResumeWarmup && seekTime > 0) {
851
+ var loadAt = hlsPriorLoadTime(seekTime);
852
852
  try {
853
- hls.startLoad(hlsPriorLoadTime(seekTime));
853
+ hls.startLoad(loadAt);
854
854
  } catch (event2) {
855
855
  }
856
+ setTimeout(function() {
857
+ if (!hlsResumeWarmup || !seekTime) {
858
+ return;
859
+ }
860
+ var target = seekTime;
861
+ if (hlsCanSafelySeekTo(target)) {
862
+ finishResumeSeek(target);
863
+ return;
864
+ }
865
+ var snap = hlsPriorLoadTime(target);
866
+ hlsResumeWarmup = false;
867
+ finishResumeSeek(snap);
868
+ }, 5e3);
856
869
  return;
857
870
  }
858
871
  if (!hlsStartPositionUsed) {
@@ -862,8 +875,7 @@ var require_ckplayer = __commonJS({
862
875
  hls.on(Hls.Events.FRAG_BUFFERED, function(event2, data) {
863
876
  if (hlsResumeWarmup && seekTime > 0) {
864
877
  if (hlsCanSafelySeekTo(seekTime)) {
865
- hlsResumeWarmup = false;
866
- applySeekToMedia(seekTime);
878
+ finishResumeSeek(seekTime);
867
879
  }
868
880
  return;
869
881
  }
@@ -1599,28 +1611,91 @@ var require_ckplayer = __commonJS({
1599
1611
  } catch (event2) {
1600
1612
  }
1601
1613
  return false;
1614
+ }, hlsFragAround = function(t) {
1615
+ if (!hls || isNaN(t) || t < 0) {
1616
+ return null;
1617
+ }
1618
+ try {
1619
+ var level = -1;
1620
+ if (typeof hls.currentLevel === "number" && hls.currentLevel >= 0) {
1621
+ level = hls.currentLevel;
1622
+ } else if (typeof hls.firstLevel === "number" && hls.firstLevel >= 0) {
1623
+ level = hls.firstLevel;
1624
+ } else {
1625
+ level = 0;
1626
+ }
1627
+ var details = hls.levels && hls.levels[level] && hls.levels[level].details;
1628
+ var frags = details && details.fragments;
1629
+ if (!frags || !frags.length) {
1630
+ return null;
1631
+ }
1632
+ for (var i = 0; i < frags.length; i++) {
1633
+ var f = frags[i];
1634
+ if (!f) {
1635
+ continue;
1636
+ }
1637
+ var start = f.start || 0;
1638
+ var end = start + (f.duration || 0);
1639
+ if (t >= start - 0.05 && t < end + 0.05) {
1640
+ return f;
1641
+ }
1642
+ }
1643
+ return frags[frags.length - 1];
1644
+ } catch (event2) {
1645
+ }
1646
+ return null;
1602
1647
  }, hlsPriorLoadTime = function(t) {
1603
1648
  if (isNaN(t) || t <= 0) {
1604
1649
  return 0;
1605
1650
  }
1651
+ var frag = hlsFragAround(t);
1652
+ if (frag && !isUndefined(frag.start)) {
1653
+ return Math.max(0, frag.start);
1654
+ }
1606
1655
  return Math.max(0, t - 12);
1607
1656
  }, hlsCanSafelySeekTo = function(t) {
1608
1657
  if (!video || isUndefined(video.buffered) || isNaN(t) || t < 0) {
1609
1658
  return false;
1610
1659
  }
1660
+ if (!timeInBuffered(t)) {
1661
+ return false;
1662
+ }
1663
+ var fragStart = hlsPriorLoadTime(t);
1611
1664
  try {
1612
1665
  var buf = video.buffered;
1613
- var needFrom = hlsPriorLoadTime(t);
1614
1666
  for (var i = 0; i < buf.length; i++) {
1615
1667
  var start = buf.start(i);
1616
1668
  var end = buf.end(i);
1617
- if (t <= end + 0.15 && needFrom >= start - 0.35) {
1669
+ if (fragStart >= start - 0.35 && t <= end + 0.15) {
1618
1670
  return true;
1619
1671
  }
1620
1672
  }
1621
1673
  } catch (event2) {
1622
1674
  }
1623
1675
  return false;
1676
+ }, finishResumeSeek = function(t) {
1677
+ hlsResumeWarmup = false;
1678
+ applySeekToMedia(t);
1679
+ setTimeout(function() {
1680
+ if (!video) {
1681
+ return;
1682
+ }
1683
+ if (C["buffer"]) {
1684
+ C["buffer"].hide();
1685
+ }
1686
+ waited = true;
1687
+ if (vars["autoplay"] || autoplayPending) {
1688
+ try {
1689
+ var p = video.play();
1690
+ if (p && typeof p.then === "function") {
1691
+ p.catch(function() {
1692
+ });
1693
+ }
1694
+ } catch (event2) {
1695
+ }
1696
+ autoplayPending = false;
1697
+ }
1698
+ }, 120);
1624
1699
  }, clearSeekRetry = function() {
1625
1700
  if (seekRetryTimer) {
1626
1701
  clearTimeout(seekRetryTimer);
@@ -1671,8 +1746,7 @@ var require_ckplayer = __commonJS({
1671
1746
  }
1672
1747
  if (hlsResumeWarmup) {
1673
1748
  if (hlsCanSafelySeekTo(t)) {
1674
- hlsResumeWarmup = false;
1675
- applySeekToMedia(t);
1749
+ finishResumeSeek(t);
1676
1750
  }
1677
1751
  return;
1678
1752
  }
@@ -1723,7 +1797,10 @@ var require_ckplayer = __commonJS({
1723
1797
  if (isNaN(resumeAt) || resumeAt < 0) {
1724
1798
  resumeAt = 0;
1725
1799
  }
1726
- var loadFrom = Math.max(0, resumeAt - 12 * decodeRecoverCount);
1800
+ var loadFrom = hlsPriorLoadTime(resumeAt);
1801
+ if (decodeRecoverCount >= 2) {
1802
+ loadFrom = Math.max(0, loadFrom - 10);
1803
+ }
1727
1804
  seekApplyLock = false;
1728
1805
  clearSeekRetry();
1729
1806
  try {
@@ -1733,7 +1810,8 @@ var require_ckplayer = __commonJS({
1733
1810
  } catch (event2) {
1734
1811
  }
1735
1812
  if (resumeAt > 0 && hls && typeof hls.startLoad === "function") {
1736
- seekTime = resumeAt;
1813
+ var target = decodeRecoverCount >= 3 ? loadFrom : resumeAt;
1814
+ seekTime = target;
1737
1815
  hlsResumeTarget = resumeAt;
1738
1816
  hlsResumeWarmup = true;
1739
1817
  hlsLoadAt = -1;
@@ -1743,36 +1821,18 @@ var require_ckplayer = __commonJS({
1743
1821
  } catch (event2) {
1744
1822
  }
1745
1823
  setTimeout(function() {
1746
- if (hlsCanSafelySeekTo(resumeAt)) {
1747
- hlsResumeWarmup = false;
1748
- applySeekToMedia(resumeAt);
1749
- if (video && video.paused && vars["autoplay"]) {
1750
- try {
1751
- video.play();
1752
- } catch (e2) {
1753
- }
1754
- }
1824
+ if (hlsCanSafelySeekTo(target)) {
1825
+ finishResumeSeek(target);
1826
+ } else if (decodeRecoverCount >= 2) {
1827
+ finishResumeSeek(loadFrom);
1755
1828
  } else {
1756
1829
  applyPendingSeek(false);
1757
1830
  }
1758
- }, 500);
1831
+ }, 600);
1759
1832
  return true;
1760
1833
  }
1761
1834
  try {
1762
- var soft = Math.max(0, resumeAt - 1.5);
1763
- seekTime = resumeAt;
1764
- if (video) {
1765
- video.currentTime = soft;
1766
- }
1767
- setTimeout(function() {
1768
- applyPendingSeek(true);
1769
- if (video && video.paused && vars["autoplay"]) {
1770
- try {
1771
- video.play();
1772
- } catch (e2) {
1773
- }
1774
- }
1775
- }, 400);
1835
+ finishResumeSeek(Math.max(0, resumeAt - 1.5));
1776
1836
  return true;
1777
1837
  } catch (event2) {
1778
1838
  }
@@ -2013,7 +2073,7 @@ var require_ckplayer = __commonJS({
2013
2073
  eventTarget("seeked");
2014
2074
  },
2015
2075
  seeking: function() {
2016
- if (paused) {
2076
+ if (paused && !seekApplyLock && !hlsResumeWarmup && !seekTime) {
2017
2077
  player.play();
2018
2078
  }
2019
2079
  var seekingTime = this.currentTime;
@@ -6205,7 +6265,7 @@ var require_ckplayer = __commonJS({
6205
6265
  if (!isRetry && (!vars || vars["cdnFallback"] !== false)) {
6206
6266
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
6207
6267
  var m = String(file).match(/\/(hls\.js|flv\.js|mpegts\.js|language)\/([^/?#]+)(?:[?#].*)?$/i);
6208
- if (cdn && cdn.indexOf("1.1.1") === -1 && m) {
6268
+ if (cdn && cdn.indexOf("1.1.2") === -1 && m) {
6209
6269
  if (cdn.slice(-1) !== "/") {
6210
6270
  cdn += "/";
6211
6271
  }
package/dist/react.js CHANGED
@@ -204,7 +204,7 @@ var require_ckplayer = __commonJS({
204
204
  cdnFallback: true
205
205
  // getPath 失败时是否回退到 jsDelivr(内网可设 false,并配置 pluginPath)
206
206
  };
207
- var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.1/dist/";
207
+ var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.2/dist/";
208
208
  function ckplayerEmbed(videoObj) {
209
209
  var rightMenu = [
210
210
  {
@@ -426,7 +426,7 @@ var require_ckplayer = __commonJS({
426
426
  }
427
427
  var allowCdn = !vars || vars["cdnFallback"] !== false;
428
428
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
429
- if (!allowCdn || !cdn || cdn.indexOf("1.1.1") > -1) {
429
+ if (!allowCdn || !cdn || cdn.indexOf("1.1.2") > -1) {
430
430
  return folder + "/" + file;
431
431
  }
432
432
  if (cdn.slice(-1) !== "/") {
@@ -836,17 +836,30 @@ var require_ckplayer = __commonJS({
836
836
  seekTime = resumeAt;
837
837
  hlsResumeTarget = resumeAt;
838
838
  hlsResumeWarmup = true;
839
- hlsConf.startPosition = hlsPriorLoadTime(resumeAt);
840
839
  }
841
840
  hls = new Hls(hlsConf);
842
841
  hls.loadSource(url);
843
842
  hls.attachMedia(video);
844
843
  hls.on(Hls.Events.MANIFEST_PARSED, function() {
845
844
  if (hlsResumeWarmup && seekTime > 0) {
845
+ var loadAt = hlsPriorLoadTime(seekTime);
846
846
  try {
847
- hls.startLoad(hlsPriorLoadTime(seekTime));
847
+ hls.startLoad(loadAt);
848
848
  } catch (event2) {
849
849
  }
850
+ setTimeout(function() {
851
+ if (!hlsResumeWarmup || !seekTime) {
852
+ return;
853
+ }
854
+ var target = seekTime;
855
+ if (hlsCanSafelySeekTo(target)) {
856
+ finishResumeSeek(target);
857
+ return;
858
+ }
859
+ var snap = hlsPriorLoadTime(target);
860
+ hlsResumeWarmup = false;
861
+ finishResumeSeek(snap);
862
+ }, 5e3);
850
863
  return;
851
864
  }
852
865
  if (!hlsStartPositionUsed) {
@@ -856,8 +869,7 @@ var require_ckplayer = __commonJS({
856
869
  hls.on(Hls.Events.FRAG_BUFFERED, function(event2, data) {
857
870
  if (hlsResumeWarmup && seekTime > 0) {
858
871
  if (hlsCanSafelySeekTo(seekTime)) {
859
- hlsResumeWarmup = false;
860
- applySeekToMedia(seekTime);
872
+ finishResumeSeek(seekTime);
861
873
  }
862
874
  return;
863
875
  }
@@ -1593,28 +1605,91 @@ var require_ckplayer = __commonJS({
1593
1605
  } catch (event2) {
1594
1606
  }
1595
1607
  return false;
1608
+ }, hlsFragAround = function(t) {
1609
+ if (!hls || isNaN(t) || t < 0) {
1610
+ return null;
1611
+ }
1612
+ try {
1613
+ var level = -1;
1614
+ if (typeof hls.currentLevel === "number" && hls.currentLevel >= 0) {
1615
+ level = hls.currentLevel;
1616
+ } else if (typeof hls.firstLevel === "number" && hls.firstLevel >= 0) {
1617
+ level = hls.firstLevel;
1618
+ } else {
1619
+ level = 0;
1620
+ }
1621
+ var details = hls.levels && hls.levels[level] && hls.levels[level].details;
1622
+ var frags = details && details.fragments;
1623
+ if (!frags || !frags.length) {
1624
+ return null;
1625
+ }
1626
+ for (var i = 0; i < frags.length; i++) {
1627
+ var f = frags[i];
1628
+ if (!f) {
1629
+ continue;
1630
+ }
1631
+ var start = f.start || 0;
1632
+ var end = start + (f.duration || 0);
1633
+ if (t >= start - 0.05 && t < end + 0.05) {
1634
+ return f;
1635
+ }
1636
+ }
1637
+ return frags[frags.length - 1];
1638
+ } catch (event2) {
1639
+ }
1640
+ return null;
1596
1641
  }, hlsPriorLoadTime = function(t) {
1597
1642
  if (isNaN(t) || t <= 0) {
1598
1643
  return 0;
1599
1644
  }
1645
+ var frag = hlsFragAround(t);
1646
+ if (frag && !isUndefined(frag.start)) {
1647
+ return Math.max(0, frag.start);
1648
+ }
1600
1649
  return Math.max(0, t - 12);
1601
1650
  }, hlsCanSafelySeekTo = function(t) {
1602
1651
  if (!video || isUndefined(video.buffered) || isNaN(t) || t < 0) {
1603
1652
  return false;
1604
1653
  }
1654
+ if (!timeInBuffered(t)) {
1655
+ return false;
1656
+ }
1657
+ var fragStart = hlsPriorLoadTime(t);
1605
1658
  try {
1606
1659
  var buf = video.buffered;
1607
- var needFrom = hlsPriorLoadTime(t);
1608
1660
  for (var i = 0; i < buf.length; i++) {
1609
1661
  var start = buf.start(i);
1610
1662
  var end = buf.end(i);
1611
- if (t <= end + 0.15 && needFrom >= start - 0.35) {
1663
+ if (fragStart >= start - 0.35 && t <= end + 0.15) {
1612
1664
  return true;
1613
1665
  }
1614
1666
  }
1615
1667
  } catch (event2) {
1616
1668
  }
1617
1669
  return false;
1670
+ }, finishResumeSeek = function(t) {
1671
+ hlsResumeWarmup = false;
1672
+ applySeekToMedia(t);
1673
+ setTimeout(function() {
1674
+ if (!video) {
1675
+ return;
1676
+ }
1677
+ if (C["buffer"]) {
1678
+ C["buffer"].hide();
1679
+ }
1680
+ waited = true;
1681
+ if (vars["autoplay"] || autoplayPending) {
1682
+ try {
1683
+ var p = video.play();
1684
+ if (p && typeof p.then === "function") {
1685
+ p.catch(function() {
1686
+ });
1687
+ }
1688
+ } catch (event2) {
1689
+ }
1690
+ autoplayPending = false;
1691
+ }
1692
+ }, 120);
1618
1693
  }, clearSeekRetry = function() {
1619
1694
  if (seekRetryTimer) {
1620
1695
  clearTimeout(seekRetryTimer);
@@ -1665,8 +1740,7 @@ var require_ckplayer = __commonJS({
1665
1740
  }
1666
1741
  if (hlsResumeWarmup) {
1667
1742
  if (hlsCanSafelySeekTo(t)) {
1668
- hlsResumeWarmup = false;
1669
- applySeekToMedia(t);
1743
+ finishResumeSeek(t);
1670
1744
  }
1671
1745
  return;
1672
1746
  }
@@ -1717,7 +1791,10 @@ var require_ckplayer = __commonJS({
1717
1791
  if (isNaN(resumeAt) || resumeAt < 0) {
1718
1792
  resumeAt = 0;
1719
1793
  }
1720
- var loadFrom = Math.max(0, resumeAt - 12 * decodeRecoverCount);
1794
+ var loadFrom = hlsPriorLoadTime(resumeAt);
1795
+ if (decodeRecoverCount >= 2) {
1796
+ loadFrom = Math.max(0, loadFrom - 10);
1797
+ }
1721
1798
  seekApplyLock = false;
1722
1799
  clearSeekRetry();
1723
1800
  try {
@@ -1727,7 +1804,8 @@ var require_ckplayer = __commonJS({
1727
1804
  } catch (event2) {
1728
1805
  }
1729
1806
  if (resumeAt > 0 && hls && typeof hls.startLoad === "function") {
1730
- seekTime = resumeAt;
1807
+ var target = decodeRecoverCount >= 3 ? loadFrom : resumeAt;
1808
+ seekTime = target;
1731
1809
  hlsResumeTarget = resumeAt;
1732
1810
  hlsResumeWarmup = true;
1733
1811
  hlsLoadAt = -1;
@@ -1737,36 +1815,18 @@ var require_ckplayer = __commonJS({
1737
1815
  } catch (event2) {
1738
1816
  }
1739
1817
  setTimeout(function() {
1740
- if (hlsCanSafelySeekTo(resumeAt)) {
1741
- hlsResumeWarmup = false;
1742
- applySeekToMedia(resumeAt);
1743
- if (video && video.paused && vars["autoplay"]) {
1744
- try {
1745
- video.play();
1746
- } catch (e2) {
1747
- }
1748
- }
1818
+ if (hlsCanSafelySeekTo(target)) {
1819
+ finishResumeSeek(target);
1820
+ } else if (decodeRecoverCount >= 2) {
1821
+ finishResumeSeek(loadFrom);
1749
1822
  } else {
1750
1823
  applyPendingSeek(false);
1751
1824
  }
1752
- }, 500);
1825
+ }, 600);
1753
1826
  return true;
1754
1827
  }
1755
1828
  try {
1756
- var soft = Math.max(0, resumeAt - 1.5);
1757
- seekTime = resumeAt;
1758
- if (video) {
1759
- video.currentTime = soft;
1760
- }
1761
- setTimeout(function() {
1762
- applyPendingSeek(true);
1763
- if (video && video.paused && vars["autoplay"]) {
1764
- try {
1765
- video.play();
1766
- } catch (e2) {
1767
- }
1768
- }
1769
- }, 400);
1829
+ finishResumeSeek(Math.max(0, resumeAt - 1.5));
1770
1830
  return true;
1771
1831
  } catch (event2) {
1772
1832
  }
@@ -2007,7 +2067,7 @@ var require_ckplayer = __commonJS({
2007
2067
  eventTarget("seeked");
2008
2068
  },
2009
2069
  seeking: function() {
2010
- if (paused) {
2070
+ if (paused && !seekApplyLock && !hlsResumeWarmup && !seekTime) {
2011
2071
  player.play();
2012
2072
  }
2013
2073
  var seekingTime = this.currentTime;
@@ -6199,7 +6259,7 @@ var require_ckplayer = __commonJS({
6199
6259
  if (!isRetry && (!vars || vars["cdnFallback"] !== false)) {
6200
6260
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
6201
6261
  var m = String(file).match(/\/(hls\.js|flv\.js|mpegts\.js|language)\/([^/?#]+)(?:[?#].*)?$/i);
6202
- if (cdn && cdn.indexOf("1.1.1") === -1 && m) {
6262
+ if (cdn && cdn.indexOf("1.1.2") === -1 && m) {
6203
6263
  if (cdn.slice(-1) !== "/") {
6204
6264
  cdn += "/";
6205
6265
  }