ckplayer-plus 1.0.0 → 1.0.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
@@ -205,10 +205,14 @@ var require_ckplayer = __commonJS({
205
205
  //是否显示错误信息
206
206
  pluginPath: "",
207
207
  //插件与语言包根路径(bundler 下建议配置或设置 window.ckplayerBasePath)
208
- autoPlug: true
208
+ autoPlug: true,
209
209
  //未指定 plug 时,根据视频地址后缀自动选择 hls.js / flv.js / mpegts.js
210
+ preferBuiltinPlug: true,
211
+ //优先加载本包内置插件脚本,避免复用页面上其它版本的全局 Hls/flvjs/mpegts
212
+ cdnFallback: true
213
+ // getPath 失败时是否回退到 jsDelivr(内网可设 false,并配置 pluginPath)
210
214
  };
211
- var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@__VERSION__/dist/";
215
+ var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.0.2/dist/";
212
216
  function ckplayerEmbed(videoObj) {
213
217
  var rightMenu = [
214
218
  {
@@ -388,7 +392,11 @@ var require_ckplayer = __commonJS({
388
392
  if (fromScript && fromScript.indexOf(folder + "/") > -1 && fromScript.indexOf("undefined") === -1) {
389
393
  return fromScript;
390
394
  }
395
+ var allowCdn = !vars || vars["cdnFallback"] !== false;
391
396
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
397
+ if (!allowCdn || !cdn || cdn.indexOf("1.0.2") > -1) {
398
+ return folder + "/" + file;
399
+ }
392
400
  if (cdn.slice(-1) !== "/") {
393
401
  cdn += "/";
394
402
  }
@@ -656,12 +664,19 @@ var require_ckplayer = __commonJS({
656
664
  if (!isUndefined(vars["seek"]) && !seekTime) {
657
665
  if (valType(vars["seek"]) == "number" && vars["seek"] > 0) {
658
666
  seekTime = vars["seek"];
659
- }
660
- if (valType(vars["seek"]) == "string" && vars["seek"] == "cookie" && cookieName) {
667
+ } else if (valType(vars["seek"]) == "string" && vars["seek"] == "cookie" && cookieName) {
661
668
  var cke = player.cookie(cookieName);
662
669
  if (cke) {
663
670
  seekTime = cke["time"];
664
671
  }
672
+ } else if (valType(vars["seek"]) == "string" && vars["seek"] !== "" && !isNaN(parseFloat(vars["seek"]))) {
673
+ seekTime = parseFloat(vars["seek"]);
674
+ }
675
+ if (seekTime && seekTime > 0) {
676
+ maxSeeTime = Math.max(maxSeeTime, seekTime);
677
+ if (firstSeekTime < 0) {
678
+ firstSeekTime = seekTime;
679
+ }
665
680
  }
666
681
  }
667
682
  }, plugPlayer = function(url) {
@@ -696,6 +711,9 @@ var require_ckplayer = __commonJS({
696
711
  hls = new Hls();
697
712
  hls.loadSource(url);
698
713
  hls.attachMedia(video);
714
+ hls.on(Hls.Events.MANIFEST_PARSED, function() {
715
+ applyPendingSeek();
716
+ });
699
717
  hls.on(Hls.Events.ERROR, function(event2, data) {
700
718
  var code = 9;
701
719
  var message2 = language["error"]["loadingFailed"];
@@ -722,7 +740,7 @@ var require_ckplayer = __commonJS({
722
740
  video.attr("src", url);
723
741
  }
724
742
  };
725
- if (typeof Hls !== "undefined" && !isUndefined(Hls)) {
743
+ if (typeof Hls !== "undefined" && !isUndefined(Hls) && !vars["preferBuiltinPlug"]) {
726
744
  startHls();
727
745
  return;
728
746
  }
@@ -760,7 +778,7 @@ var require_ckplayer = __commonJS({
760
778
  });
761
779
  }
762
780
  };
763
- if (typeof flvjs !== "undefined" && !isUndefined(flvjs)) {
781
+ if (typeof flvjs !== "undefined" && !isUndefined(flvjs) && !vars["preferBuiltinPlug"]) {
764
782
  startFlv();
765
783
  return;
766
784
  }
@@ -798,7 +816,7 @@ var require_ckplayer = __commonJS({
798
816
  });
799
817
  }
800
818
  };
801
- if (typeof mpegts !== "undefined" && !isUndefined(mpegts)) {
819
+ if (typeof mpegts !== "undefined" && !isUndefined(mpegts) && !vars["preferBuiltinPlug"]) {
802
820
  startMpegts();
803
821
  return;
804
822
  }
@@ -1393,6 +1411,30 @@ var require_ckplayer = __commonJS({
1393
1411
  checkTrack();
1394
1412
  }
1395
1413
  }
1414
+ }, applyPendingSeek = function() {
1415
+ if (!seekTime || !video) {
1416
+ return;
1417
+ }
1418
+ if (!isUndefined(vars["live"]) && (valType(vars["live"]) == "boolean" && vars["live"] || valType(vars["live"]) == "number")) {
1419
+ return;
1420
+ }
1421
+ var t = seekTime;
1422
+ var dur = duration || video.duration || 0;
1423
+ if (dur && isFinite(dur) && dur > 0 && t >= dur) {
1424
+ t = Math.max(0, dur - 0.3);
1425
+ }
1426
+ if (t > 0) {
1427
+ maxSeeTime = Math.max(maxSeeTime, t);
1428
+ if (firstSeekTime < 0) {
1429
+ firstSeekTime = t;
1430
+ }
1431
+ }
1432
+ seekTime = 0;
1433
+ try {
1434
+ video.currentTime = t;
1435
+ } catch (event2) {
1436
+ seekTime = t;
1437
+ }
1396
1438
  }, loadedMetaData = function() {
1397
1439
  eventTarget("loadedMetaData", {
1398
1440
  width: CK.getWidth(),
@@ -1434,6 +1476,7 @@ var require_ckplayer = __commonJS({
1434
1476
  canPlay: function() {
1435
1477
  C["loading"].hide();
1436
1478
  eventTarget("canplay");
1479
+ applyPendingSeek();
1437
1480
  },
1438
1481
  loadedData: function() {
1439
1482
  eventTarget("loadeddata");
@@ -1462,6 +1505,7 @@ var require_ckplayer = __commonJS({
1462
1505
  if (CT.videoWidth || CT.videoHeight || duration) {
1463
1506
  loadedMetaData();
1464
1507
  }
1508
+ applyPendingSeek();
1465
1509
  var len = 0;
1466
1510
  if (!isUndefined(this.buffered)) {
1467
1511
  len = this.buffered.length;
@@ -1517,6 +1561,7 @@ var require_ckplayer = __commonJS({
1517
1561
  if (CT.videoWidth || CT.videoHeight || duration) {
1518
1562
  loadedMetaData();
1519
1563
  }
1564
+ applyPendingSeek();
1520
1565
  }
1521
1566
  oldTime = playTime;
1522
1567
  playTime = this.currentTime;
@@ -1728,9 +1773,8 @@ var require_ckplayer = __commonJS({
1728
1773
  }
1729
1774
  }
1730
1775
  }
1731
- if (seekTime && (isUndefined(vars["live"]) || !isUndefined(vars["live"]) && valType(vars["live"]) == "boolean" && !vars["live"]) && seekTime < parseInt(duration * 100) * 0.01) {
1732
- player.seek(seekTime);
1733
- seekTime = 0;
1776
+ if (seekTime && (isUndefined(vars["live"]) || !isUndefined(vars["live"]) && valType(vars["live"]) == "boolean" && !vars["live"])) {
1777
+ applyPendingSeek();
1734
1778
  }
1735
1779
  },
1736
1780
  pause: function() {
@@ -2496,52 +2540,102 @@ var require_ckplayer = __commonJS({
2496
2540
  /*
2497
2541
  * seek
2498
2542
  * 功能:监听跳转/执行跳转操作
2499
- * @fn为函数时则监听视频跳转动作,@fn为数字时执行跳转操作
2543
+ * @fn为函数时则监听视频跳转动作,@fn为数字(或数字字符串)时执行跳转操作
2500
2544
  */
2501
2545
  seek: function(fn2) {
2502
2546
  if (!isUndefined(fn2)) {
2503
2547
  if (valType(fn2) == "function") {
2504
2548
  newEvent.addEventListener("seek", fn2);
2505
- }
2506
- if (valType(fn2) == "number" && video) {
2507
- switch (vars["timeScheduleAdjust"]) {
2508
- case 0:
2509
- message(language["timeScheduleAdjust"]["prohibit"]);
2510
- return;
2511
- break;
2512
- case 1:
2513
- break;
2514
- case 2:
2515
- if (fn2 < oldTime) {
2516
- message(language["timeScheduleAdjust"]["prohibitBackOff"]);
2517
- return;
2549
+ } else {
2550
+ var target = null;
2551
+ if (valType(fn2) == "number" && !isNaN(fn2)) {
2552
+ target = fn2;
2553
+ } else if (valType(fn2) == "string" && fn2 !== "" && fn2 !== "cookie" && !isNaN(parseFloat(fn2))) {
2554
+ target = parseFloat(fn2);
2555
+ }
2556
+ if (target !== null && video) {
2557
+ if (target > 0 && (seekTime && Math.abs(seekTime - target) < 0.5 || vars["seek"] && parseFloat(vars["seek"]) > 0 && Math.abs(parseFloat(vars["seek"]) - target) < 0.5)) {
2558
+ maxSeeTime = Math.max(maxSeeTime, target);
2559
+ if (firstSeekTime < 0) {
2560
+ firstSeekTime = target;
2518
2561
  }
2519
- break;
2520
- case 3:
2521
- if (fn2 > oldTime) {
2522
- message(language["timeScheduleAdjust"]["prohibitForward"]);
2523
- return;
2562
+ }
2563
+ switch (vars["timeScheduleAdjust"]) {
2564
+ case 0:
2565
+ message(language["timeScheduleAdjust"]["prohibit"]);
2566
+ return player;
2567
+ case 1:
2568
+ break;
2569
+ case 2:
2570
+ if (target < oldTime) {
2571
+ message(language["timeScheduleAdjust"]["prohibitBackOff"]);
2572
+ return player;
2573
+ }
2574
+ break;
2575
+ case 3:
2576
+ if (target > oldTime) {
2577
+ message(language["timeScheduleAdjust"]["prohibitForward"]);
2578
+ return player;
2579
+ }
2580
+ break;
2581
+ case 4:
2582
+ if (target < firstSeekTime) {
2583
+ waitingMessage = false;
2584
+ try {
2585
+ video.currentTime = firstSeekTime;
2586
+ } catch (event2) {
2587
+ }
2588
+ message(language["timeScheduleAdjust"]["prohibitLookBack"]);
2589
+ return player;
2590
+ }
2591
+ break;
2592
+ case 5:
2593
+ if (target > maxSeeTime) {
2594
+ waitingMessage = false;
2595
+ try {
2596
+ video.currentTime = maxSeeTime;
2597
+ } catch (event2) {
2598
+ }
2599
+ message(language["timeScheduleAdjust"]["prohibitForwardNotViewed"]);
2600
+ return player;
2601
+ }
2602
+ break;
2603
+ }
2604
+ pSliderMouseDown = false;
2605
+ var ready = video.readyState >= 2 || duration && isFinite(duration) && duration > 0;
2606
+ if (!ready) {
2607
+ seekTime = target;
2608
+ if (target > 0) {
2609
+ maxSeeTime = Math.max(maxSeeTime, target);
2610
+ if (firstSeekTime < 0) {
2611
+ firstSeekTime = target;
2612
+ }
2524
2613
  }
2525
- break;
2526
- case 4:
2527
- if (fn2 < firstSeekTime) {
2528
- waitingMessage = false;
2529
- video.currentTime = firstSeekTime;
2530
- message(language["timeScheduleAdjust"]["prohibitLookBack"]);
2531
- return;
2614
+ try {
2615
+ video.currentTime = target;
2616
+ } catch (event2) {
2532
2617
  }
2533
- break;
2534
- case 5:
2535
- if (fn2 > maxSeeTime) {
2536
- waitingMessage = false;
2537
- video.currentTime = maxSeeTime;
2538
- message(language["timeScheduleAdjust"]["prohibitForwardNotViewed"]);
2539
- return;
2618
+ return player;
2619
+ }
2620
+ if (duration && isFinite(duration) && duration > 0 && target > duration) {
2621
+ target = Math.max(0, duration - 0.3);
2622
+ }
2623
+ if (target < 0) {
2624
+ target = 0;
2625
+ }
2626
+ if (vars["timeScheduleAdjust"] == 5 && target > maxSeeTime && seekTime && Math.abs(seekTime - target) < 0.5) {
2627
+ maxSeeTime = Math.max(maxSeeTime, target);
2628
+ }
2629
+ try {
2630
+ video.currentTime = target;
2631
+ seekTime = 0;
2632
+ if (target > maxSeeTime && vars["timeScheduleAdjust"] != 5) {
2633
+ maxSeeTime = target;
2540
2634
  }
2541
- break;
2635
+ } catch (event2) {
2636
+ seekTime = target;
2637
+ }
2542
2638
  }
2543
- pSliderMouseDown = false;
2544
- video.currentTime = fn2;
2545
2639
  }
2546
2640
  }
2547
2641
  return player;
@@ -6604,7 +6698,9 @@ var CkPlayer = (0, import_react.forwardRef)(function CkPlayer2(props, ref) {
6604
6698
  if (playerRef.current) playerRef.current.pause();
6605
6699
  },
6606
6700
  seek: function(time) {
6607
- if (playerRef.current) playerRef.current.seek(time);
6701
+ if (!playerRef.current) return;
6702
+ var t = typeof time === "string" ? parseFloat(time) : time;
6703
+ if (!isNaN(t)) playerRef.current.seek(t);
6608
6704
  },
6609
6705
  setVolume: function(vol) {
6610
6706
  if (playerRef.current) playerRef.current.volume(vol);
package/dist/react.js CHANGED
@@ -200,10 +200,14 @@ var require_ckplayer = __commonJS({
200
200
  //是否显示错误信息
201
201
  pluginPath: "",
202
202
  //插件与语言包根路径(bundler 下建议配置或设置 window.ckplayerBasePath)
203
- autoPlug: true
203
+ autoPlug: true,
204
204
  //未指定 plug 时,根据视频地址后缀自动选择 hls.js / flv.js / mpegts.js
205
+ preferBuiltinPlug: true,
206
+ //优先加载本包内置插件脚本,避免复用页面上其它版本的全局 Hls/flvjs/mpegts
207
+ cdnFallback: true
208
+ // getPath 失败时是否回退到 jsDelivr(内网可设 false,并配置 pluginPath)
205
209
  };
206
- var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@__VERSION__/dist/";
210
+ var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.0.2/dist/";
207
211
  function ckplayerEmbed(videoObj) {
208
212
  var rightMenu = [
209
213
  {
@@ -383,7 +387,11 @@ var require_ckplayer = __commonJS({
383
387
  if (fromScript && fromScript.indexOf(folder + "/") > -1 && fromScript.indexOf("undefined") === -1) {
384
388
  return fromScript;
385
389
  }
390
+ var allowCdn = !vars || vars["cdnFallback"] !== false;
386
391
  var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
392
+ if (!allowCdn || !cdn || cdn.indexOf("1.0.2") > -1) {
393
+ return folder + "/" + file;
394
+ }
387
395
  if (cdn.slice(-1) !== "/") {
388
396
  cdn += "/";
389
397
  }
@@ -651,12 +659,19 @@ var require_ckplayer = __commonJS({
651
659
  if (!isUndefined(vars["seek"]) && !seekTime) {
652
660
  if (valType(vars["seek"]) == "number" && vars["seek"] > 0) {
653
661
  seekTime = vars["seek"];
654
- }
655
- if (valType(vars["seek"]) == "string" && vars["seek"] == "cookie" && cookieName) {
662
+ } else if (valType(vars["seek"]) == "string" && vars["seek"] == "cookie" && cookieName) {
656
663
  var cke = player.cookie(cookieName);
657
664
  if (cke) {
658
665
  seekTime = cke["time"];
659
666
  }
667
+ } else if (valType(vars["seek"]) == "string" && vars["seek"] !== "" && !isNaN(parseFloat(vars["seek"]))) {
668
+ seekTime = parseFloat(vars["seek"]);
669
+ }
670
+ if (seekTime && seekTime > 0) {
671
+ maxSeeTime = Math.max(maxSeeTime, seekTime);
672
+ if (firstSeekTime < 0) {
673
+ firstSeekTime = seekTime;
674
+ }
660
675
  }
661
676
  }
662
677
  }, plugPlayer = function(url) {
@@ -691,6 +706,9 @@ var require_ckplayer = __commonJS({
691
706
  hls = new Hls();
692
707
  hls.loadSource(url);
693
708
  hls.attachMedia(video);
709
+ hls.on(Hls.Events.MANIFEST_PARSED, function() {
710
+ applyPendingSeek();
711
+ });
694
712
  hls.on(Hls.Events.ERROR, function(event2, data) {
695
713
  var code = 9;
696
714
  var message2 = language["error"]["loadingFailed"];
@@ -717,7 +735,7 @@ var require_ckplayer = __commonJS({
717
735
  video.attr("src", url);
718
736
  }
719
737
  };
720
- if (typeof Hls !== "undefined" && !isUndefined(Hls)) {
738
+ if (typeof Hls !== "undefined" && !isUndefined(Hls) && !vars["preferBuiltinPlug"]) {
721
739
  startHls();
722
740
  return;
723
741
  }
@@ -755,7 +773,7 @@ var require_ckplayer = __commonJS({
755
773
  });
756
774
  }
757
775
  };
758
- if (typeof flvjs !== "undefined" && !isUndefined(flvjs)) {
776
+ if (typeof flvjs !== "undefined" && !isUndefined(flvjs) && !vars["preferBuiltinPlug"]) {
759
777
  startFlv();
760
778
  return;
761
779
  }
@@ -793,7 +811,7 @@ var require_ckplayer = __commonJS({
793
811
  });
794
812
  }
795
813
  };
796
- if (typeof mpegts !== "undefined" && !isUndefined(mpegts)) {
814
+ if (typeof mpegts !== "undefined" && !isUndefined(mpegts) && !vars["preferBuiltinPlug"]) {
797
815
  startMpegts();
798
816
  return;
799
817
  }
@@ -1388,6 +1406,30 @@ var require_ckplayer = __commonJS({
1388
1406
  checkTrack();
1389
1407
  }
1390
1408
  }
1409
+ }, applyPendingSeek = function() {
1410
+ if (!seekTime || !video) {
1411
+ return;
1412
+ }
1413
+ if (!isUndefined(vars["live"]) && (valType(vars["live"]) == "boolean" && vars["live"] || valType(vars["live"]) == "number")) {
1414
+ return;
1415
+ }
1416
+ var t = seekTime;
1417
+ var dur = duration || video.duration || 0;
1418
+ if (dur && isFinite(dur) && dur > 0 && t >= dur) {
1419
+ t = Math.max(0, dur - 0.3);
1420
+ }
1421
+ if (t > 0) {
1422
+ maxSeeTime = Math.max(maxSeeTime, t);
1423
+ if (firstSeekTime < 0) {
1424
+ firstSeekTime = t;
1425
+ }
1426
+ }
1427
+ seekTime = 0;
1428
+ try {
1429
+ video.currentTime = t;
1430
+ } catch (event2) {
1431
+ seekTime = t;
1432
+ }
1391
1433
  }, loadedMetaData = function() {
1392
1434
  eventTarget("loadedMetaData", {
1393
1435
  width: CK.getWidth(),
@@ -1429,6 +1471,7 @@ var require_ckplayer = __commonJS({
1429
1471
  canPlay: function() {
1430
1472
  C["loading"].hide();
1431
1473
  eventTarget("canplay");
1474
+ applyPendingSeek();
1432
1475
  },
1433
1476
  loadedData: function() {
1434
1477
  eventTarget("loadeddata");
@@ -1457,6 +1500,7 @@ var require_ckplayer = __commonJS({
1457
1500
  if (CT.videoWidth || CT.videoHeight || duration) {
1458
1501
  loadedMetaData();
1459
1502
  }
1503
+ applyPendingSeek();
1460
1504
  var len = 0;
1461
1505
  if (!isUndefined(this.buffered)) {
1462
1506
  len = this.buffered.length;
@@ -1512,6 +1556,7 @@ var require_ckplayer = __commonJS({
1512
1556
  if (CT.videoWidth || CT.videoHeight || duration) {
1513
1557
  loadedMetaData();
1514
1558
  }
1559
+ applyPendingSeek();
1515
1560
  }
1516
1561
  oldTime = playTime;
1517
1562
  playTime = this.currentTime;
@@ -1723,9 +1768,8 @@ var require_ckplayer = __commonJS({
1723
1768
  }
1724
1769
  }
1725
1770
  }
1726
- if (seekTime && (isUndefined(vars["live"]) || !isUndefined(vars["live"]) && valType(vars["live"]) == "boolean" && !vars["live"]) && seekTime < parseInt(duration * 100) * 0.01) {
1727
- player.seek(seekTime);
1728
- seekTime = 0;
1771
+ if (seekTime && (isUndefined(vars["live"]) || !isUndefined(vars["live"]) && valType(vars["live"]) == "boolean" && !vars["live"])) {
1772
+ applyPendingSeek();
1729
1773
  }
1730
1774
  },
1731
1775
  pause: function() {
@@ -2491,52 +2535,102 @@ var require_ckplayer = __commonJS({
2491
2535
  /*
2492
2536
  * seek
2493
2537
  * 功能:监听跳转/执行跳转操作
2494
- * @fn为函数时则监听视频跳转动作,@fn为数字时执行跳转操作
2538
+ * @fn为函数时则监听视频跳转动作,@fn为数字(或数字字符串)时执行跳转操作
2495
2539
  */
2496
2540
  seek: function(fn2) {
2497
2541
  if (!isUndefined(fn2)) {
2498
2542
  if (valType(fn2) == "function") {
2499
2543
  newEvent.addEventListener("seek", fn2);
2500
- }
2501
- if (valType(fn2) == "number" && video) {
2502
- switch (vars["timeScheduleAdjust"]) {
2503
- case 0:
2504
- message(language["timeScheduleAdjust"]["prohibit"]);
2505
- return;
2506
- break;
2507
- case 1:
2508
- break;
2509
- case 2:
2510
- if (fn2 < oldTime) {
2511
- message(language["timeScheduleAdjust"]["prohibitBackOff"]);
2512
- return;
2544
+ } else {
2545
+ var target = null;
2546
+ if (valType(fn2) == "number" && !isNaN(fn2)) {
2547
+ target = fn2;
2548
+ } else if (valType(fn2) == "string" && fn2 !== "" && fn2 !== "cookie" && !isNaN(parseFloat(fn2))) {
2549
+ target = parseFloat(fn2);
2550
+ }
2551
+ if (target !== null && video) {
2552
+ if (target > 0 && (seekTime && Math.abs(seekTime - target) < 0.5 || vars["seek"] && parseFloat(vars["seek"]) > 0 && Math.abs(parseFloat(vars["seek"]) - target) < 0.5)) {
2553
+ maxSeeTime = Math.max(maxSeeTime, target);
2554
+ if (firstSeekTime < 0) {
2555
+ firstSeekTime = target;
2513
2556
  }
2514
- break;
2515
- case 3:
2516
- if (fn2 > oldTime) {
2517
- message(language["timeScheduleAdjust"]["prohibitForward"]);
2518
- return;
2557
+ }
2558
+ switch (vars["timeScheduleAdjust"]) {
2559
+ case 0:
2560
+ message(language["timeScheduleAdjust"]["prohibit"]);
2561
+ return player;
2562
+ case 1:
2563
+ break;
2564
+ case 2:
2565
+ if (target < oldTime) {
2566
+ message(language["timeScheduleAdjust"]["prohibitBackOff"]);
2567
+ return player;
2568
+ }
2569
+ break;
2570
+ case 3:
2571
+ if (target > oldTime) {
2572
+ message(language["timeScheduleAdjust"]["prohibitForward"]);
2573
+ return player;
2574
+ }
2575
+ break;
2576
+ case 4:
2577
+ if (target < firstSeekTime) {
2578
+ waitingMessage = false;
2579
+ try {
2580
+ video.currentTime = firstSeekTime;
2581
+ } catch (event2) {
2582
+ }
2583
+ message(language["timeScheduleAdjust"]["prohibitLookBack"]);
2584
+ return player;
2585
+ }
2586
+ break;
2587
+ case 5:
2588
+ if (target > maxSeeTime) {
2589
+ waitingMessage = false;
2590
+ try {
2591
+ video.currentTime = maxSeeTime;
2592
+ } catch (event2) {
2593
+ }
2594
+ message(language["timeScheduleAdjust"]["prohibitForwardNotViewed"]);
2595
+ return player;
2596
+ }
2597
+ break;
2598
+ }
2599
+ pSliderMouseDown = false;
2600
+ var ready = video.readyState >= 2 || duration && isFinite(duration) && duration > 0;
2601
+ if (!ready) {
2602
+ seekTime = target;
2603
+ if (target > 0) {
2604
+ maxSeeTime = Math.max(maxSeeTime, target);
2605
+ if (firstSeekTime < 0) {
2606
+ firstSeekTime = target;
2607
+ }
2519
2608
  }
2520
- break;
2521
- case 4:
2522
- if (fn2 < firstSeekTime) {
2523
- waitingMessage = false;
2524
- video.currentTime = firstSeekTime;
2525
- message(language["timeScheduleAdjust"]["prohibitLookBack"]);
2526
- return;
2609
+ try {
2610
+ video.currentTime = target;
2611
+ } catch (event2) {
2527
2612
  }
2528
- break;
2529
- case 5:
2530
- if (fn2 > maxSeeTime) {
2531
- waitingMessage = false;
2532
- video.currentTime = maxSeeTime;
2533
- message(language["timeScheduleAdjust"]["prohibitForwardNotViewed"]);
2534
- return;
2613
+ return player;
2614
+ }
2615
+ if (duration && isFinite(duration) && duration > 0 && target > duration) {
2616
+ target = Math.max(0, duration - 0.3);
2617
+ }
2618
+ if (target < 0) {
2619
+ target = 0;
2620
+ }
2621
+ if (vars["timeScheduleAdjust"] == 5 && target > maxSeeTime && seekTime && Math.abs(seekTime - target) < 0.5) {
2622
+ maxSeeTime = Math.max(maxSeeTime, target);
2623
+ }
2624
+ try {
2625
+ video.currentTime = target;
2626
+ seekTime = 0;
2627
+ if (target > maxSeeTime && vars["timeScheduleAdjust"] != 5) {
2628
+ maxSeeTime = target;
2535
2629
  }
2536
- break;
2630
+ } catch (event2) {
2631
+ seekTime = target;
2632
+ }
2537
2633
  }
2538
- pSliderMouseDown = false;
2539
- video.currentTime = fn2;
2540
2634
  }
2541
2635
  }
2542
2636
  return player;
@@ -6591,7 +6685,9 @@ var CkPlayer = forwardRef(function CkPlayer2(props, ref) {
6591
6685
  if (playerRef.current) playerRef.current.pause();
6592
6686
  },
6593
6687
  seek: function(time) {
6594
- if (playerRef.current) playerRef.current.seek(time);
6688
+ if (!playerRef.current) return;
6689
+ var t = typeof time === "string" ? parseFloat(time) : time;
6690
+ if (!isNaN(t)) playerRef.current.seek(t);
6595
6691
  },
6596
6692
  setVolume: function(vol) {
6597
6693
  if (playerRef.current) playerRef.current.volume(vol);