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.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.6/dist/";
213
+ var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.7/dist/";
214
214
  function ckplayerEmbed(videoObj) {
215
215
  var rightMenu = [
216
216
  {
@@ -246,6 +246,8 @@ var require_ckplayer = __commonJS({
246
246
  var hlsLoadAt = -1;
247
247
  var hlsLoadTs = 0;
248
248
  var hlsScrubResumePlay = false;
249
+ var hlsScrubbing = false;
250
+ var hlsResumeSettling = false;
249
251
  var oldTime = 0, playTime = 0, firstSeekTime = -1, maxSeeTime = 0;
250
252
  var isChangeDef = true;
251
253
  var playType = "";
@@ -433,7 +435,7 @@ var require_ckplayer = __commonJS({
433
435
  }
434
436
  var allowCdn = !vars || vars["cdnFallback"] !== false;
435
437
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
436
- if (!allowCdn || !cdn || cdn.indexOf("1.1.6") > -1) {
438
+ if (!allowCdn || !cdn || cdn.indexOf("1.1.7") > -1) {
437
439
  return folder + "/" + file;
438
440
  }
439
441
  if (cdn.slice(-1) !== "/") {
@@ -695,22 +697,61 @@ var require_ckplayer = __commonJS({
695
697
  if (dur && isFinite(dur) && dur > 0 && target >= dur) {
696
698
  target = Math.max(0, dur - 0.3);
697
699
  }
698
- hlsScrubResumePlay = !paused;
700
+ var wasPlaying = !paused;
701
+ hlsScrubbing = true;
702
+ hlsScrubResumePlay = wasPlaying;
699
703
  clearSeekRetry();
700
704
  hlsResumeWarmup = false;
705
+ hlsResumeSettling = false;
701
706
  hlsResumeTarget = -1;
702
707
  seekTime = 0;
703
708
  seekApplyLock = true;
709
+ if (timeInBuffered(target)) {
710
+ try {
711
+ video.currentTime = target;
712
+ } catch (event2) {
713
+ seekApplyLock = false;
714
+ hlsScrubbing = false;
715
+ return false;
716
+ }
717
+ setTimeout(function() {
718
+ seekApplyLock = false;
719
+ hlsScrubbing = false;
720
+ if (C["buffer"]) {
721
+ C["buffer"].hide();
722
+ }
723
+ waited = true;
724
+ if (wasPlaying) {
725
+ hlsScrubResumePlay = false;
726
+ try {
727
+ player.play();
728
+ } catch (errPlay) {
729
+ }
730
+ } else {
731
+ hlsScrubResumePlay = false;
732
+ }
733
+ }, 80);
734
+ return true;
735
+ }
704
736
  try {
705
737
  video.currentTime = target;
706
738
  } catch (event2) {
707
739
  seekApplyLock = false;
740
+ hlsScrubbing = false;
708
741
  return false;
709
742
  }
710
743
  setTimeout(function() {
711
744
  seekApplyLock = false;
712
745
  }, 120);
713
746
  return true;
747
+ }, hidePlaybackBuffer = function() {
748
+ waited = true;
749
+ if (C["buffer"]) {
750
+ C["buffer"].hide();
751
+ }
752
+ if (C["loading"]) {
753
+ C["loading"].hide();
754
+ }
714
755
  }, destroyStreamPlayers = function() {
715
756
  clearSeekRetry();
716
757
  seekApplyLock = false;
@@ -720,6 +761,8 @@ var require_ckplayer = __commonJS({
720
761
  hlsLoadAt = -1;
721
762
  hlsLoadTs = 0;
722
763
  hlsScrubResumePlay = false;
764
+ hlsScrubbing = false;
765
+ hlsResumeSettling = false;
723
766
  decodeRecoverCount = 0;
724
767
  if (hls) {
725
768
  try {
@@ -882,38 +925,40 @@ var require_ckplayer = __commonJS({
882
925
  }
883
926
  seekTime = resumeAt;
884
927
  hlsResumeTarget = resumeAt;
885
- hlsResumeWarmup = true;
886
- hlsConf.autoStartLoad = false;
928
+ hlsResumeSettling = true;
929
+ hlsResumeWarmup = false;
887
930
  }
888
931
  hls = new Hls(hlsConf);
889
932
  hls.loadSource(url);
890
933
  hls.attachMedia(video);
891
934
  hls.on(Hls.Events.MANIFEST_PARSED, function() {
892
- if (hlsResumeWarmup && seekTime > 0) {
893
- var loadAt = hlsPriorLoadTime(seekTime);
894
- hlsLoadAt = loadAt;
895
- hlsLoadTs = Date.now();
935
+ if (seekTime > 0 && hlsResumeSettling) {
896
936
  hlsStartPositionUsed = true;
897
- try {
898
- hls.startLoad(loadAt);
899
- } catch (event2) {
900
- }
901
- setTimeout(function() {
902
- if (!hlsResumeWarmup || !seekTime) {
937
+ var tryResume = function() {
938
+ if (!seekTime || !hlsResumeSettling) {
903
939
  return;
904
940
  }
905
- var target = seekTime;
906
- if (hlsCanSafelySeekTo(target)) {
907
- finishResumeSeek(target);
941
+ var t = seekTime;
942
+ if (video && (video.readyState >= 1 || duration && isFinite(duration) && duration > 0)) {
943
+ finishResumeSeek(t);
908
944
  return;
909
945
  }
910
- var snap = hlsFragStartTime(target);
911
- if (timeInBuffered(snap) || hlsCanSafelySeekTo(snap)) {
912
- finishResumeSeek(snap);
913
- return;
946
+ seekRetryCount++;
947
+ if (seekRetryCount <= 25) {
948
+ if (seekRetryTimer) {
949
+ clearTimeout(seekRetryTimer);
950
+ }
951
+ seekRetryTimer = setTimeout(tryResume, 120);
952
+ } else {
953
+ finishResumeSeek(t);
914
954
  }
915
- finishResumeSeek(Math.max(0, loadAt));
916
- }, 5e3);
955
+ };
956
+ tryResume();
957
+ setTimeout(function() {
958
+ if (hlsResumeSettling && seekTime > 0) {
959
+ finishResumeSeek(seekTime);
960
+ }
961
+ }, 4e3);
917
962
  return;
918
963
  }
919
964
  if (!hlsStartPositionUsed) {
@@ -921,10 +966,7 @@ var require_ckplayer = __commonJS({
921
966
  }
922
967
  });
923
968
  hls.on(Hls.Events.FRAG_BUFFERED, function(event2, data) {
924
- if (hlsResumeWarmup && seekTime > 0) {
925
- if (hlsCanSafelySeekTo(seekTime)) {
926
- finishResumeSeek(seekTime);
927
- }
969
+ if (hlsResumeSettling && seekTime > 0) {
928
970
  return;
929
971
  }
930
972
  if (hlsResumeTarget <= 0 || !data || !data.frag) {
@@ -933,12 +975,7 @@ var require_ckplayer = __commonJS({
933
975
  var fragStart = data.frag.start;
934
976
  var fragEnd = fragStart + data.frag.duration;
935
977
  if (hlsResumeTarget >= fragStart - 0.5 && hlsResumeTarget <= fragEnd + 0.5) {
936
- if (!waited) {
937
- waited = true;
938
- if (C["buffer"]) {
939
- C["buffer"].hide();
940
- }
941
- }
978
+ hidePlaybackBuffer();
942
979
  }
943
980
  });
944
981
  hls.on(Hls.Events.ERROR, function(event2, data) {
@@ -957,11 +994,27 @@ var require_ckplayer = __commonJS({
957
994
  }
958
995
  }
959
996
  }
960
- if (fatal && data.type === Hls.ErrorTypes.MEDIA_ERROR && hls && typeof hls.recoverMediaError === "function") {
961
- try {
962
- hls.recoverMediaError();
963
- fatal = false;
964
- } catch (errRecover) {
997
+ if (fatal && hls) {
998
+ if (data.type === Hls.ErrorTypes.NETWORK_ERROR && typeof hls.startLoad === "function") {
999
+ try {
1000
+ if (data.details === "keyLoadError") {
1001
+ setTimeout(function() {
1002
+ if (hls && typeof hls.startLoad === "function") {
1003
+ hls.startLoad();
1004
+ }
1005
+ }, 2e3);
1006
+ } else {
1007
+ hls.startLoad();
1008
+ }
1009
+ fatal = false;
1010
+ } catch (errNet) {
1011
+ }
1012
+ } else if (data.type === Hls.ErrorTypes.MEDIA_ERROR && typeof hls.recoverMediaError === "function") {
1013
+ try {
1014
+ hls.recoverMediaError();
1015
+ fatal = false;
1016
+ } catch (errRecover) {
1017
+ }
965
1018
  }
966
1019
  }
967
1020
  CT.error = { code, message: message2 };
@@ -1774,6 +1827,7 @@ var require_ckplayer = __commonJS({
1774
1827
  return false;
1775
1828
  }, finishResumeSeek = function(t) {
1776
1829
  hlsResumeWarmup = false;
1830
+ hlsResumeSettling = false;
1777
1831
  autoplayPending = false;
1778
1832
  applySeekToMedia(t);
1779
1833
  setTimeout(function() {
@@ -1785,10 +1839,7 @@ var require_ckplayer = __commonJS({
1785
1839
  } catch (event2) {
1786
1840
  }
1787
1841
  paused = true;
1788
- if (C["buffer"]) {
1789
- C["buffer"].hide();
1790
- }
1791
- waited = true;
1842
+ hidePlaybackBuffer();
1792
1843
  if (!vars["controls"] && C["centerPlay"]) {
1793
1844
  C["centerPlay"].show();
1794
1845
  }
@@ -1838,6 +1889,7 @@ var require_ckplayer = __commonJS({
1838
1889
  if (t <= 0) {
1839
1890
  seekTime = 0;
1840
1891
  clearSeekRetry();
1892
+ hlsResumeSettling = false;
1841
1893
  return;
1842
1894
  }
1843
1895
  if (t > 0) {
@@ -1846,42 +1898,22 @@ var require_ckplayer = __commonJS({
1846
1898
  firstSeekTime = t;
1847
1899
  }
1848
1900
  }
1849
- if (hls && typeof hls.startLoad === "function") {
1850
- if (hlsCanSafelySeekTo(t)) {
1851
- finishResumeSeek(t);
1852
- return;
1853
- }
1854
- if (t > 1) {
1855
- hlsResumeWarmup = true;
1856
- hlsResumeTarget = t;
1857
- var loadAt = hlsPriorLoadTime(t);
1858
- var shouldLoad = !!force;
1859
- if (!shouldLoad) {
1860
- if (!(hlsLoadAt >= 0 && Math.abs(hlsLoadAt - loadAt) < 1.5 && Date.now() - hlsLoadTs < 4e3)) {
1861
- shouldLoad = true;
1862
- }
1863
- }
1864
- if (shouldLoad) {
1865
- hlsLoadAt = loadAt;
1866
- hlsLoadTs = Date.now();
1867
- try {
1868
- hls.startLoad(loadAt);
1869
- } catch (event2) {
1870
- }
1871
- }
1901
+ if (hls) {
1902
+ hlsResumeSettling = true;
1903
+ if (!force && (!isUndefined(video.readyState) && video.readyState < 1) && !(dur && isFinite(dur) && dur > 0)) {
1872
1904
  seekRetryCount++;
1873
- if (seekRetryCount <= 50) {
1905
+ if (seekRetryCount <= 40) {
1874
1906
  if (seekRetryTimer) {
1875
1907
  clearTimeout(seekRetryTimer);
1876
1908
  }
1877
1909
  seekRetryTimer = setTimeout(function() {
1878
1910
  applyPendingSeek(false);
1879
- }, 200);
1911
+ }, 120);
1880
1912
  return;
1881
1913
  }
1882
- finishResumeSeek(hlsFragStartTime(t) || loadAt || t);
1883
- return;
1884
1914
  }
1915
+ finishResumeSeek(t);
1916
+ return;
1885
1917
  }
1886
1918
  if (!force && (!isUndefined(video.readyState) && video.readyState < 1)) {
1887
1919
  seekRetryCount++;
@@ -1985,6 +2017,7 @@ var require_ckplayer = __commonJS({
1985
2017
  },
1986
2018
  canPlay: function() {
1987
2019
  C["loading"].hide();
2020
+ hidePlaybackBuffer();
1988
2021
  eventTarget("canplay");
1989
2022
  applyPendingSeek();
1990
2023
  startPendingAutoplay();
@@ -2175,12 +2208,11 @@ var require_ckplayer = __commonJS({
2175
2208
  seeked: function() {
2176
2209
  seekApplyLock = false;
2177
2210
  decodeRecoverCount = 0;
2211
+ hlsScrubbing = false;
2212
+ hlsResumeSettling = false;
2178
2213
  startPendingAutoplay();
2179
2214
  pSliderMouseDown = false;
2180
- waited = true;
2181
- if (C["buffer"]) {
2182
- C["buffer"].hide();
2183
- }
2215
+ hidePlaybackBuffer();
2184
2216
  if (hlsScrubResumePlay) {
2185
2217
  hlsScrubResumePlay = false;
2186
2218
  try {
@@ -2192,54 +2224,56 @@ var require_ckplayer = __commonJS({
2192
2224
  eventTarget("seeked");
2193
2225
  },
2194
2226
  seeking: function() {
2195
- if (paused && !seekApplyLock && !hlsResumeWarmup && !seekTime && !autoplayPending) {
2227
+ if (paused && !seekApplyLock && !hlsResumeWarmup && !hlsResumeSettling && !hlsScrubbing && !seekTime && !autoplayPending) {
2196
2228
  player.play();
2197
2229
  }
2198
2230
  var seekingTime = this.currentTime;
2199
2231
  if (firstSeekTime == -1) {
2200
2232
  firstSeekTime = seekingTime;
2201
2233
  }
2202
- switch (vars["timeScheduleAdjust"]) {
2203
- case 0:
2204
- if (oldTime != seekingTime) {
2205
- waitingMessage = false;
2206
- player.seek(oldTime);
2207
- message(language["timeScheduleAdjust"]["prohibit"]);
2208
- return;
2209
- }
2210
- break;
2211
- case 2:
2212
- if (seekingTime < oldTime) {
2213
- waitingMessage = false;
2214
- player.seek(oldTime);
2215
- message(language["timeScheduleAdjust"]["prohibitBackOff"]);
2216
- return;
2217
- }
2218
- break;
2219
- case 3:
2220
- if (seekingTime > oldTime) {
2221
- waitingMessage = false;
2222
- player.seek(oldTime);
2223
- message(language["timeScheduleAdjust"]["prohibitForward"]);
2224
- return;
2225
- }
2226
- break;
2227
- case 4:
2228
- if (seekingTime < firstSeekTime) {
2229
- waitingMessage = false;
2230
- player.seek(firstSeekTime);
2231
- message(language["timeScheduleAdjust"]["prohibitLookBack"]);
2232
- return;
2233
- }
2234
- break;
2235
- case 5:
2236
- if (seekingTime > maxSeeTime) {
2237
- waitingMessage = false;
2238
- player.seek(maxSeeTime);
2239
- message(language["timeScheduleAdjust"]["prohibitForwardNotViewed"]);
2240
- return;
2241
- }
2242
- break;
2234
+ if (!(hlsScrubbing || hlsScrubResumePlay || hlsResumeSettling || hlsResumeWarmup)) {
2235
+ switch (vars["timeScheduleAdjust"]) {
2236
+ case 0:
2237
+ if (oldTime != seekingTime) {
2238
+ waitingMessage = false;
2239
+ player.seek(oldTime);
2240
+ message(language["timeScheduleAdjust"]["prohibit"]);
2241
+ return;
2242
+ }
2243
+ break;
2244
+ case 2:
2245
+ if (seekingTime < oldTime) {
2246
+ waitingMessage = false;
2247
+ player.seek(oldTime);
2248
+ message(language["timeScheduleAdjust"]["prohibitBackOff"]);
2249
+ return;
2250
+ }
2251
+ break;
2252
+ case 3:
2253
+ if (seekingTime > oldTime) {
2254
+ waitingMessage = false;
2255
+ player.seek(oldTime);
2256
+ message(language["timeScheduleAdjust"]["prohibitForward"]);
2257
+ return;
2258
+ }
2259
+ break;
2260
+ case 4:
2261
+ if (seekingTime < firstSeekTime) {
2262
+ waitingMessage = false;
2263
+ player.seek(firstSeekTime);
2264
+ message(language["timeScheduleAdjust"]["prohibitLookBack"]);
2265
+ return;
2266
+ }
2267
+ break;
2268
+ case 5:
2269
+ if (seekingTime > maxSeeTime) {
2270
+ waitingMessage = false;
2271
+ player.seek(maxSeeTime);
2272
+ message(language["timeScheduleAdjust"]["prohibitForwardNotViewed"]);
2273
+ return;
2274
+ }
2275
+ break;
2276
+ }
2243
2277
  }
2244
2278
  eventTarget("seek", { time: seekingTime, state: "seeking" });
2245
2279
  eventTarget("seeking");
@@ -2251,10 +2285,15 @@ var require_ckplayer = __commonJS({
2251
2285
  waiting: function() {
2252
2286
  waited = false;
2253
2287
  eventTarget("buffer", "start");
2254
- C["centerPlay"].hide();
2288
+ if (!(hlsScrubbing || hlsScrubResumePlay || hlsResumeSettling)) {
2289
+ C["centerPlay"].hide();
2290
+ }
2255
2291
  if (!vars["controls"]) {
2256
2292
  C["buffer"].show();
2257
2293
  }
2294
+ if (hlsScrubbing || hlsScrubResumePlay || hlsResumeSettling) {
2295
+ return;
2296
+ }
2258
2297
  if (!waitingMessage) {
2259
2298
  waitingMessage = true;
2260
2299
  } else {
@@ -2267,6 +2306,7 @@ var require_ckplayer = __commonJS({
2267
2306
  C["bar"]["playAndPause"]["pause"].show();
2268
2307
  C["bar"]["playAndPause"]["refresh"].hide();
2269
2308
  C["centerPlay"].hide();
2309
+ hidePlaybackBuffer();
2270
2310
  if (playType == "button") {
2271
2311
  C["bar"]["pbox"].removeClass("ck-bar-progress-out");
2272
2312
  } else {
@@ -4985,6 +5025,7 @@ var require_ckplayer = __commonJS({
4985
5025
  e = e || window.event;
4986
5026
  var eleOffset = slider.offset(), bgOffset = bg.offset(), client = getClient(e);
4987
5027
  pSliderMouseDown = true;
5028
+ hlsScrubbing = true;
4988
5029
  posRecord = client["x"];
4989
5030
  var left = eleOffset["left"] - bgOffset["left"];
4990
5031
  sliderDownTime = left * duration / (bg.getWidth() - slider.getWidth());
@@ -5080,6 +5121,11 @@ var require_ckplayer = __commonJS({
5080
5121
  eventTarget("playback", { time: playbackTime2, date: date("Y-m-d H:i:s", playbackTime2) });
5081
5122
  eventTarget("seek", { time: playbackTime2, state: "seeking", date: date("Y-m-d H:i:s", playbackTime2) });
5082
5123
  }
5124
+ setTimeout(function() {
5125
+ if (!pSliderMouseDown) {
5126
+ hlsScrubbing = false;
5127
+ }
5128
+ }, 800);
5083
5129
  C["bar"]["pbox"].removeClass("ck-bar-progress-slider-move");
5084
5130
  if (isMouseLeave) {
5085
5131
  tip();
@@ -6381,7 +6427,7 @@ var require_ckplayer = __commonJS({
6381
6427
  if (!isRetry && (!vars || vars["cdnFallback"] !== false)) {
6382
6428
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
6383
6429
  var m = String(file).match(/\/(hls\.js|flv\.js|mpegts\.js|language)\/([^/?#]+)(?:[?#].*)?$/i);
6384
- if (cdn && cdn.indexOf("1.1.6") === -1 && m) {
6430
+ if (cdn && cdn.indexOf("1.1.7") === -1 && m) {
6385
6431
  if (cdn.slice(-1) !== "/") {
6386
6432
  cdn += "/";
6387
6433
  }