ckplayer-plus 1.1.6 → 1.1.7

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/vue.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.6/dist/";
207
+ var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.7/dist/";
208
208
  function ckplayerEmbed(videoObj) {
209
209
  var rightMenu = [
210
210
  {
@@ -240,6 +240,8 @@ var require_ckplayer = __commonJS({
240
240
  var hlsLoadAt = -1;
241
241
  var hlsLoadTs = 0;
242
242
  var hlsScrubResumePlay = false;
243
+ var hlsScrubbing = false;
244
+ var hlsResumeSettling = false;
243
245
  var oldTime = 0, playTime = 0, firstSeekTime = -1, maxSeeTime = 0;
244
246
  var isChangeDef = true;
245
247
  var playType = "";
@@ -427,7 +429,7 @@ var require_ckplayer = __commonJS({
427
429
  }
428
430
  var allowCdn = !vars || vars["cdnFallback"] !== false;
429
431
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
430
- if (!allowCdn || !cdn || cdn.indexOf("1.1.6") > -1) {
432
+ if (!allowCdn || !cdn || cdn.indexOf("1.1.7") > -1) {
431
433
  return folder + "/" + file;
432
434
  }
433
435
  if (cdn.slice(-1) !== "/") {
@@ -689,22 +691,61 @@ var require_ckplayer = __commonJS({
689
691
  if (dur && isFinite(dur) && dur > 0 && target >= dur) {
690
692
  target = Math.max(0, dur - 0.3);
691
693
  }
692
- hlsScrubResumePlay = !paused;
694
+ var wasPlaying = !paused;
695
+ hlsScrubbing = true;
696
+ hlsScrubResumePlay = wasPlaying;
693
697
  clearSeekRetry();
694
698
  hlsResumeWarmup = false;
699
+ hlsResumeSettling = false;
695
700
  hlsResumeTarget = -1;
696
701
  seekTime = 0;
697
702
  seekApplyLock = true;
703
+ if (timeInBuffered(target)) {
704
+ try {
705
+ video.currentTime = target;
706
+ } catch (event2) {
707
+ seekApplyLock = false;
708
+ hlsScrubbing = false;
709
+ return false;
710
+ }
711
+ setTimeout(function() {
712
+ seekApplyLock = false;
713
+ hlsScrubbing = false;
714
+ if (C["buffer"]) {
715
+ C["buffer"].hide();
716
+ }
717
+ waited = true;
718
+ if (wasPlaying) {
719
+ hlsScrubResumePlay = false;
720
+ try {
721
+ player.play();
722
+ } catch (errPlay) {
723
+ }
724
+ } else {
725
+ hlsScrubResumePlay = false;
726
+ }
727
+ }, 80);
728
+ return true;
729
+ }
698
730
  try {
699
731
  video.currentTime = target;
700
732
  } catch (event2) {
701
733
  seekApplyLock = false;
734
+ hlsScrubbing = false;
702
735
  return false;
703
736
  }
704
737
  setTimeout(function() {
705
738
  seekApplyLock = false;
706
739
  }, 120);
707
740
  return true;
741
+ }, hidePlaybackBuffer = function() {
742
+ waited = true;
743
+ if (C["buffer"]) {
744
+ C["buffer"].hide();
745
+ }
746
+ if (C["loading"]) {
747
+ C["loading"].hide();
748
+ }
708
749
  }, destroyStreamPlayers = function() {
709
750
  clearSeekRetry();
710
751
  seekApplyLock = false;
@@ -714,6 +755,8 @@ var require_ckplayer = __commonJS({
714
755
  hlsLoadAt = -1;
715
756
  hlsLoadTs = 0;
716
757
  hlsScrubResumePlay = false;
758
+ hlsScrubbing = false;
759
+ hlsResumeSettling = false;
717
760
  decodeRecoverCount = 0;
718
761
  if (hls) {
719
762
  try {
@@ -876,38 +919,40 @@ var require_ckplayer = __commonJS({
876
919
  }
877
920
  seekTime = resumeAt;
878
921
  hlsResumeTarget = resumeAt;
879
- hlsResumeWarmup = true;
880
- hlsConf.autoStartLoad = false;
922
+ hlsResumeSettling = true;
923
+ hlsResumeWarmup = false;
881
924
  }
882
925
  hls = new Hls(hlsConf);
883
926
  hls.loadSource(url);
884
927
  hls.attachMedia(video);
885
928
  hls.on(Hls.Events.MANIFEST_PARSED, function() {
886
- if (hlsResumeWarmup && seekTime > 0) {
887
- var loadAt = hlsPriorLoadTime(seekTime);
888
- hlsLoadAt = loadAt;
889
- hlsLoadTs = Date.now();
929
+ if (seekTime > 0 && hlsResumeSettling) {
890
930
  hlsStartPositionUsed = true;
891
- try {
892
- hls.startLoad(loadAt);
893
- } catch (event2) {
894
- }
895
- setTimeout(function() {
896
- if (!hlsResumeWarmup || !seekTime) {
931
+ var tryResume = function() {
932
+ if (!seekTime || !hlsResumeSettling) {
897
933
  return;
898
934
  }
899
- var target = seekTime;
900
- if (hlsCanSafelySeekTo(target)) {
901
- finishResumeSeek(target);
935
+ var t = seekTime;
936
+ if (video && (video.readyState >= 1 || duration && isFinite(duration) && duration > 0)) {
937
+ finishResumeSeek(t);
902
938
  return;
903
939
  }
904
- var snap = hlsFragStartTime(target);
905
- if (timeInBuffered(snap) || hlsCanSafelySeekTo(snap)) {
906
- finishResumeSeek(snap);
907
- return;
940
+ seekRetryCount++;
941
+ if (seekRetryCount <= 25) {
942
+ if (seekRetryTimer) {
943
+ clearTimeout(seekRetryTimer);
944
+ }
945
+ seekRetryTimer = setTimeout(tryResume, 120);
946
+ } else {
947
+ finishResumeSeek(t);
908
948
  }
909
- finishResumeSeek(Math.max(0, loadAt));
910
- }, 5e3);
949
+ };
950
+ tryResume();
951
+ setTimeout(function() {
952
+ if (hlsResumeSettling && seekTime > 0) {
953
+ finishResumeSeek(seekTime);
954
+ }
955
+ }, 4e3);
911
956
  return;
912
957
  }
913
958
  if (!hlsStartPositionUsed) {
@@ -915,10 +960,7 @@ var require_ckplayer = __commonJS({
915
960
  }
916
961
  });
917
962
  hls.on(Hls.Events.FRAG_BUFFERED, function(event2, data) {
918
- if (hlsResumeWarmup && seekTime > 0) {
919
- if (hlsCanSafelySeekTo(seekTime)) {
920
- finishResumeSeek(seekTime);
921
- }
963
+ if (hlsResumeSettling && seekTime > 0) {
922
964
  return;
923
965
  }
924
966
  if (hlsResumeTarget <= 0 || !data || !data.frag) {
@@ -927,12 +969,7 @@ var require_ckplayer = __commonJS({
927
969
  var fragStart = data.frag.start;
928
970
  var fragEnd = fragStart + data.frag.duration;
929
971
  if (hlsResumeTarget >= fragStart - 0.5 && hlsResumeTarget <= fragEnd + 0.5) {
930
- if (!waited) {
931
- waited = true;
932
- if (C["buffer"]) {
933
- C["buffer"].hide();
934
- }
935
- }
972
+ hidePlaybackBuffer();
936
973
  }
937
974
  });
938
975
  hls.on(Hls.Events.ERROR, function(event2, data) {
@@ -951,11 +988,27 @@ var require_ckplayer = __commonJS({
951
988
  }
952
989
  }
953
990
  }
954
- if (fatal && data.type === Hls.ErrorTypes.MEDIA_ERROR && hls && typeof hls.recoverMediaError === "function") {
955
- try {
956
- hls.recoverMediaError();
957
- fatal = false;
958
- } catch (errRecover) {
991
+ if (fatal && hls) {
992
+ if (data.type === Hls.ErrorTypes.NETWORK_ERROR && typeof hls.startLoad === "function") {
993
+ try {
994
+ if (data.details === "keyLoadError") {
995
+ setTimeout(function() {
996
+ if (hls && typeof hls.startLoad === "function") {
997
+ hls.startLoad();
998
+ }
999
+ }, 2e3);
1000
+ } else {
1001
+ hls.startLoad();
1002
+ }
1003
+ fatal = false;
1004
+ } catch (errNet) {
1005
+ }
1006
+ } else if (data.type === Hls.ErrorTypes.MEDIA_ERROR && typeof hls.recoverMediaError === "function") {
1007
+ try {
1008
+ hls.recoverMediaError();
1009
+ fatal = false;
1010
+ } catch (errRecover) {
1011
+ }
959
1012
  }
960
1013
  }
961
1014
  CT.error = { code, message: message2 };
@@ -1768,6 +1821,7 @@ var require_ckplayer = __commonJS({
1768
1821
  return false;
1769
1822
  }, finishResumeSeek = function(t) {
1770
1823
  hlsResumeWarmup = false;
1824
+ hlsResumeSettling = false;
1771
1825
  autoplayPending = false;
1772
1826
  applySeekToMedia(t);
1773
1827
  setTimeout(function() {
@@ -1779,10 +1833,7 @@ var require_ckplayer = __commonJS({
1779
1833
  } catch (event2) {
1780
1834
  }
1781
1835
  paused = true;
1782
- if (C["buffer"]) {
1783
- C["buffer"].hide();
1784
- }
1785
- waited = true;
1836
+ hidePlaybackBuffer();
1786
1837
  if (!vars["controls"] && C["centerPlay"]) {
1787
1838
  C["centerPlay"].show();
1788
1839
  }
@@ -1832,6 +1883,7 @@ var require_ckplayer = __commonJS({
1832
1883
  if (t <= 0) {
1833
1884
  seekTime = 0;
1834
1885
  clearSeekRetry();
1886
+ hlsResumeSettling = false;
1835
1887
  return;
1836
1888
  }
1837
1889
  if (t > 0) {
@@ -1840,42 +1892,22 @@ var require_ckplayer = __commonJS({
1840
1892
  firstSeekTime = t;
1841
1893
  }
1842
1894
  }
1843
- if (hls && typeof hls.startLoad === "function") {
1844
- if (hlsCanSafelySeekTo(t)) {
1845
- finishResumeSeek(t);
1846
- return;
1847
- }
1848
- if (t > 1) {
1849
- hlsResumeWarmup = true;
1850
- hlsResumeTarget = t;
1851
- var loadAt = hlsPriorLoadTime(t);
1852
- var shouldLoad = !!force;
1853
- if (!shouldLoad) {
1854
- if (!(hlsLoadAt >= 0 && Math.abs(hlsLoadAt - loadAt) < 1.5 && Date.now() - hlsLoadTs < 4e3)) {
1855
- shouldLoad = true;
1856
- }
1857
- }
1858
- if (shouldLoad) {
1859
- hlsLoadAt = loadAt;
1860
- hlsLoadTs = Date.now();
1861
- try {
1862
- hls.startLoad(loadAt);
1863
- } catch (event2) {
1864
- }
1865
- }
1895
+ if (hls) {
1896
+ hlsResumeSettling = true;
1897
+ if (!force && (!isUndefined(video.readyState) && video.readyState < 1) && !(dur && isFinite(dur) && dur > 0)) {
1866
1898
  seekRetryCount++;
1867
- if (seekRetryCount <= 50) {
1899
+ if (seekRetryCount <= 40) {
1868
1900
  if (seekRetryTimer) {
1869
1901
  clearTimeout(seekRetryTimer);
1870
1902
  }
1871
1903
  seekRetryTimer = setTimeout(function() {
1872
1904
  applyPendingSeek(false);
1873
- }, 200);
1905
+ }, 120);
1874
1906
  return;
1875
1907
  }
1876
- finishResumeSeek(hlsFragStartTime(t) || loadAt || t);
1877
- return;
1878
1908
  }
1909
+ finishResumeSeek(t);
1910
+ return;
1879
1911
  }
1880
1912
  if (!force && (!isUndefined(video.readyState) && video.readyState < 1)) {
1881
1913
  seekRetryCount++;
@@ -1979,6 +2011,7 @@ var require_ckplayer = __commonJS({
1979
2011
  },
1980
2012
  canPlay: function() {
1981
2013
  C["loading"].hide();
2014
+ hidePlaybackBuffer();
1982
2015
  eventTarget("canplay");
1983
2016
  applyPendingSeek();
1984
2017
  startPendingAutoplay();
@@ -2169,12 +2202,11 @@ var require_ckplayer = __commonJS({
2169
2202
  seeked: function() {
2170
2203
  seekApplyLock = false;
2171
2204
  decodeRecoverCount = 0;
2205
+ hlsScrubbing = false;
2206
+ hlsResumeSettling = false;
2172
2207
  startPendingAutoplay();
2173
2208
  pSliderMouseDown = false;
2174
- waited = true;
2175
- if (C["buffer"]) {
2176
- C["buffer"].hide();
2177
- }
2209
+ hidePlaybackBuffer();
2178
2210
  if (hlsScrubResumePlay) {
2179
2211
  hlsScrubResumePlay = false;
2180
2212
  try {
@@ -2186,54 +2218,56 @@ var require_ckplayer = __commonJS({
2186
2218
  eventTarget("seeked");
2187
2219
  },
2188
2220
  seeking: function() {
2189
- if (paused && !seekApplyLock && !hlsResumeWarmup && !seekTime && !autoplayPending) {
2221
+ if (paused && !seekApplyLock && !hlsResumeWarmup && !hlsResumeSettling && !hlsScrubbing && !seekTime && !autoplayPending) {
2190
2222
  player.play();
2191
2223
  }
2192
2224
  var seekingTime = this.currentTime;
2193
2225
  if (firstSeekTime == -1) {
2194
2226
  firstSeekTime = seekingTime;
2195
2227
  }
2196
- switch (vars["timeScheduleAdjust"]) {
2197
- case 0:
2198
- if (oldTime != seekingTime) {
2199
- waitingMessage = false;
2200
- player.seek(oldTime);
2201
- message(language["timeScheduleAdjust"]["prohibit"]);
2202
- return;
2203
- }
2204
- break;
2205
- case 2:
2206
- if (seekingTime < oldTime) {
2207
- waitingMessage = false;
2208
- player.seek(oldTime);
2209
- message(language["timeScheduleAdjust"]["prohibitBackOff"]);
2210
- return;
2211
- }
2212
- break;
2213
- case 3:
2214
- if (seekingTime > oldTime) {
2215
- waitingMessage = false;
2216
- player.seek(oldTime);
2217
- message(language["timeScheduleAdjust"]["prohibitForward"]);
2218
- return;
2219
- }
2220
- break;
2221
- case 4:
2222
- if (seekingTime < firstSeekTime) {
2223
- waitingMessage = false;
2224
- player.seek(firstSeekTime);
2225
- message(language["timeScheduleAdjust"]["prohibitLookBack"]);
2226
- return;
2227
- }
2228
- break;
2229
- case 5:
2230
- if (seekingTime > maxSeeTime) {
2231
- waitingMessage = false;
2232
- player.seek(maxSeeTime);
2233
- message(language["timeScheduleAdjust"]["prohibitForwardNotViewed"]);
2234
- return;
2235
- }
2236
- break;
2228
+ if (!(hlsScrubbing || hlsScrubResumePlay || hlsResumeSettling || hlsResumeWarmup)) {
2229
+ switch (vars["timeScheduleAdjust"]) {
2230
+ case 0:
2231
+ if (oldTime != seekingTime) {
2232
+ waitingMessage = false;
2233
+ player.seek(oldTime);
2234
+ message(language["timeScheduleAdjust"]["prohibit"]);
2235
+ return;
2236
+ }
2237
+ break;
2238
+ case 2:
2239
+ if (seekingTime < oldTime) {
2240
+ waitingMessage = false;
2241
+ player.seek(oldTime);
2242
+ message(language["timeScheduleAdjust"]["prohibitBackOff"]);
2243
+ return;
2244
+ }
2245
+ break;
2246
+ case 3:
2247
+ if (seekingTime > oldTime) {
2248
+ waitingMessage = false;
2249
+ player.seek(oldTime);
2250
+ message(language["timeScheduleAdjust"]["prohibitForward"]);
2251
+ return;
2252
+ }
2253
+ break;
2254
+ case 4:
2255
+ if (seekingTime < firstSeekTime) {
2256
+ waitingMessage = false;
2257
+ player.seek(firstSeekTime);
2258
+ message(language["timeScheduleAdjust"]["prohibitLookBack"]);
2259
+ return;
2260
+ }
2261
+ break;
2262
+ case 5:
2263
+ if (seekingTime > maxSeeTime) {
2264
+ waitingMessage = false;
2265
+ player.seek(maxSeeTime);
2266
+ message(language["timeScheduleAdjust"]["prohibitForwardNotViewed"]);
2267
+ return;
2268
+ }
2269
+ break;
2270
+ }
2237
2271
  }
2238
2272
  eventTarget("seek", { time: seekingTime, state: "seeking" });
2239
2273
  eventTarget("seeking");
@@ -2245,10 +2279,15 @@ var require_ckplayer = __commonJS({
2245
2279
  waiting: function() {
2246
2280
  waited = false;
2247
2281
  eventTarget("buffer", "start");
2248
- C["centerPlay"].hide();
2282
+ if (!(hlsScrubbing || hlsScrubResumePlay || hlsResumeSettling)) {
2283
+ C["centerPlay"].hide();
2284
+ }
2249
2285
  if (!vars["controls"]) {
2250
2286
  C["buffer"].show();
2251
2287
  }
2288
+ if (hlsScrubbing || hlsScrubResumePlay || hlsResumeSettling) {
2289
+ return;
2290
+ }
2252
2291
  if (!waitingMessage) {
2253
2292
  waitingMessage = true;
2254
2293
  } else {
@@ -2261,6 +2300,7 @@ var require_ckplayer = __commonJS({
2261
2300
  C["bar"]["playAndPause"]["pause"].show();
2262
2301
  C["bar"]["playAndPause"]["refresh"].hide();
2263
2302
  C["centerPlay"].hide();
2303
+ hidePlaybackBuffer();
2264
2304
  if (playType == "button") {
2265
2305
  C["bar"]["pbox"].removeClass("ck-bar-progress-out");
2266
2306
  } else {
@@ -4979,6 +5019,7 @@ var require_ckplayer = __commonJS({
4979
5019
  e = e || window.event;
4980
5020
  var eleOffset = slider.offset(), bgOffset = bg.offset(), client = getClient(e);
4981
5021
  pSliderMouseDown = true;
5022
+ hlsScrubbing = true;
4982
5023
  posRecord = client["x"];
4983
5024
  var left = eleOffset["left"] - bgOffset["left"];
4984
5025
  sliderDownTime = left * duration / (bg.getWidth() - slider.getWidth());
@@ -5074,6 +5115,11 @@ var require_ckplayer = __commonJS({
5074
5115
  eventTarget("playback", { time: playbackTime2, date: date("Y-m-d H:i:s", playbackTime2) });
5075
5116
  eventTarget("seek", { time: playbackTime2, state: "seeking", date: date("Y-m-d H:i:s", playbackTime2) });
5076
5117
  }
5118
+ setTimeout(function() {
5119
+ if (!pSliderMouseDown) {
5120
+ hlsScrubbing = false;
5121
+ }
5122
+ }, 800);
5077
5123
  C["bar"]["pbox"].removeClass("ck-bar-progress-slider-move");
5078
5124
  if (isMouseLeave) {
5079
5125
  tip();
@@ -6375,7 +6421,7 @@ var require_ckplayer = __commonJS({
6375
6421
  if (!isRetry && (!vars || vars["cdnFallback"] !== false)) {
6376
6422
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
6377
6423
  var m = String(file).match(/\/(hls\.js|flv\.js|mpegts\.js|language)\/([^/?#]+)(?:[?#].*)?$/i);
6378
- if (cdn && cdn.indexOf("1.1.6") === -1 && m) {
6424
+ if (cdn && cdn.indexOf("1.1.7") === -1 && m) {
6379
6425
  if (cdn.slice(-1) !== "/") {
6380
6426
  cdn += "/";
6381
6427
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ckplayer-plus",
3
- "version": "1.1.6",
3
+ "version": "1.1.7",
4
4
  "description": "Enhanced ckplayer X3 packaging with Vue 2/3 and React wrappers — ESM-ready HTML5 video player",
5
5
  "keywords": [
6
6
  "ckplayer",