ckplayer-plus 1.0.3 → 1.0.6
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/README.md +7 -11
- package/dist/ckplayer.js +204 -23
- package/dist/ckplayer.min.js +2 -2
- package/dist/index.cjs +194 -32
- package/dist/index.js +194 -32
- package/dist/react.cjs +241 -64
- package/dist/react.js +241 -64
- package/dist/vue.cjs +308 -108
- package/dist/vue.js +308 -108
- package/package.json +1 -1
- package/types/vue.d.ts +11 -0
package/dist/index.js
CHANGED
|
@@ -207,7 +207,7 @@ var require_ckplayer = __commonJS({
|
|
|
207
207
|
cdnFallback: true
|
|
208
208
|
// getPath 失败时是否回退到 jsDelivr(内网可设 false,并配置 pluginPath)
|
|
209
209
|
};
|
|
210
|
-
var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.0.
|
|
210
|
+
var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.0.6/dist/";
|
|
211
211
|
function ckplayerEmbed(videoObj) {
|
|
212
212
|
var rightMenu = [
|
|
213
213
|
{
|
|
@@ -232,6 +232,11 @@ var require_ckplayer = __commonJS({
|
|
|
232
232
|
var paused = true;
|
|
233
233
|
var loadTime = 0;
|
|
234
234
|
var seekTime = 0;
|
|
235
|
+
var seekRetryTimer = null;
|
|
236
|
+
var seekRetryCount = 0;
|
|
237
|
+
var seekApplyLock = false;
|
|
238
|
+
var decodeRecoverCount = 0;
|
|
239
|
+
var hlsStartPositionUsed = false;
|
|
235
240
|
var oldTime = 0, playTime = 0, firstSeekTime = -1, maxSeeTime = 0;
|
|
236
241
|
var isChangeDef = true;
|
|
237
242
|
var playType = "";
|
|
@@ -370,26 +375,34 @@ var require_ckplayer = __commonJS({
|
|
|
370
375
|
} else {
|
|
371
376
|
return embed(obj2);
|
|
372
377
|
}
|
|
378
|
+
}, isUnreliablePluginBase = function(base2) {
|
|
379
|
+
if (!base2 || valType(base2) != "string") {
|
|
380
|
+
return true;
|
|
381
|
+
}
|
|
382
|
+
return /\/(?:assets|\.vite\/deps|_next\/static|chunks?)\/?$/i.test(base2);
|
|
373
383
|
}, resolveAssetPath = function(folder, file) {
|
|
374
|
-
var
|
|
384
|
+
var base2 = "";
|
|
375
385
|
if (vars && vars["pluginPath"]) {
|
|
376
|
-
|
|
386
|
+
base2 = vars["pluginPath"];
|
|
377
387
|
} else if (typeof window !== "undefined" && window.ckplayerBasePath) {
|
|
378
|
-
|
|
388
|
+
base2 = window.ckplayerBasePath;
|
|
389
|
+
}
|
|
390
|
+
if (base2 && isUnreliablePluginBase(base2)) {
|
|
391
|
+
base2 = "";
|
|
379
392
|
}
|
|
380
|
-
if (
|
|
381
|
-
if (
|
|
382
|
-
|
|
393
|
+
if (base2) {
|
|
394
|
+
if (base2.slice(-1) !== "/") {
|
|
395
|
+
base2 += "/";
|
|
383
396
|
}
|
|
384
|
-
return
|
|
397
|
+
return base2 + folder + "/" + file;
|
|
385
398
|
}
|
|
386
399
|
var fromScript = getPath(folder) + file;
|
|
387
|
-
if (fromScript && fromScript.indexOf(folder + "/") > -1 && fromScript.indexOf("undefined") === -1) {
|
|
400
|
+
if (fromScript && fromScript.indexOf(folder + "/") > -1 && fromScript.indexOf("undefined") === -1 && !isUnreliablePluginBase(getPath())) {
|
|
388
401
|
return fromScript;
|
|
389
402
|
}
|
|
390
403
|
var allowCdn = !vars || vars["cdnFallback"] !== false;
|
|
391
404
|
var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
392
|
-
if (!allowCdn || !cdn || cdn.indexOf("1.0.
|
|
405
|
+
if (!allowCdn || !cdn || cdn.indexOf("1.0.6") > -1) {
|
|
393
406
|
return folder + "/" + file;
|
|
394
407
|
}
|
|
395
408
|
if (cdn.slice(-1) !== "/") {
|
|
@@ -703,11 +716,24 @@ var require_ckplayer = __commonJS({
|
|
|
703
716
|
}, hlsPlayer = function(url) {
|
|
704
717
|
var startHls = function() {
|
|
705
718
|
if (typeof Hls !== "undefined" && !isUndefined(Hls) && Hls.isSupported()) {
|
|
706
|
-
|
|
719
|
+
var hlsConf = {};
|
|
720
|
+
if (seekTime && seekTime > 0 && (isUndefined(vars["live"]) || !vars["live"])) {
|
|
721
|
+
hlsConf.startPosition = seekTime;
|
|
722
|
+
maxSeeTime = Math.max(maxSeeTime, seekTime);
|
|
723
|
+
if (firstSeekTime < 0) {
|
|
724
|
+
firstSeekTime = seekTime;
|
|
725
|
+
}
|
|
726
|
+
seekTime = 0;
|
|
727
|
+
hlsStartPositionUsed = true;
|
|
728
|
+
clearSeekRetry();
|
|
729
|
+
}
|
|
730
|
+
hls = new Hls(hlsConf);
|
|
707
731
|
hls.loadSource(url);
|
|
708
732
|
hls.attachMedia(video);
|
|
709
733
|
hls.on(Hls.Events.MANIFEST_PARSED, function() {
|
|
710
|
-
|
|
734
|
+
if (!hlsStartPositionUsed) {
|
|
735
|
+
applyPendingSeek();
|
|
736
|
+
}
|
|
711
737
|
});
|
|
712
738
|
hls.on(Hls.Events.ERROR, function(event2, data) {
|
|
713
739
|
var code = 9;
|
|
@@ -725,6 +751,13 @@ var require_ckplayer = __commonJS({
|
|
|
725
751
|
}
|
|
726
752
|
}
|
|
727
753
|
}
|
|
754
|
+
if (fatal && data.type === Hls.ErrorTypes.MEDIA_ERROR && hls && typeof hls.recoverMediaError === "function") {
|
|
755
|
+
try {
|
|
756
|
+
hls.recoverMediaError();
|
|
757
|
+
fatal = false;
|
|
758
|
+
} catch (errRecover) {
|
|
759
|
+
}
|
|
760
|
+
}
|
|
728
761
|
CT.error = { code, message: message2 };
|
|
729
762
|
eventTarget("error", CT.error);
|
|
730
763
|
if (fatal) {
|
|
@@ -1406,8 +1439,28 @@ var require_ckplayer = __commonJS({
|
|
|
1406
1439
|
checkTrack();
|
|
1407
1440
|
}
|
|
1408
1441
|
}
|
|
1409
|
-
},
|
|
1410
|
-
if (!
|
|
1442
|
+
}, timeInBuffered = function(t) {
|
|
1443
|
+
if (!video || isUndefined(video.buffered)) {
|
|
1444
|
+
return false;
|
|
1445
|
+
}
|
|
1446
|
+
try {
|
|
1447
|
+
var buf = video.buffered;
|
|
1448
|
+
for (var i2 = 0; i2 < buf.length; i2++) {
|
|
1449
|
+
if (t >= buf.start(i2) - 0.35 && t <= buf.end(i2) + 0.15) {
|
|
1450
|
+
return true;
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1453
|
+
} catch (event2) {
|
|
1454
|
+
}
|
|
1455
|
+
return false;
|
|
1456
|
+
}, clearSeekRetry = function() {
|
|
1457
|
+
if (seekRetryTimer) {
|
|
1458
|
+
clearTimeout(seekRetryTimer);
|
|
1459
|
+
seekRetryTimer = null;
|
|
1460
|
+
}
|
|
1461
|
+
seekRetryCount = 0;
|
|
1462
|
+
}, applyPendingSeek = function(force) {
|
|
1463
|
+
if (!seekTime || !video || seekApplyLock) {
|
|
1411
1464
|
return;
|
|
1412
1465
|
}
|
|
1413
1466
|
if (!isUndefined(vars["live"]) && (valType(vars["live"]) == "boolean" && vars["live"] || valType(vars["live"]) == "number")) {
|
|
@@ -1418,18 +1471,92 @@ var require_ckplayer = __commonJS({
|
|
|
1418
1471
|
if (dur && isFinite(dur) && dur > 0 && t >= dur) {
|
|
1419
1472
|
t = Math.max(0, dur - 0.3);
|
|
1420
1473
|
}
|
|
1474
|
+
if (t <= 0) {
|
|
1475
|
+
seekTime = 0;
|
|
1476
|
+
clearSeekRetry();
|
|
1477
|
+
return;
|
|
1478
|
+
}
|
|
1479
|
+
var readyEnough = !isUndefined(video.readyState) && video.readyState >= 2;
|
|
1480
|
+
var bufferedOk = timeInBuffered(t);
|
|
1481
|
+
if (!force && !bufferedOk && (!readyEnough || video.readyState < 3)) {
|
|
1482
|
+
seekRetryCount++;
|
|
1483
|
+
if (seekRetryCount <= 50) {
|
|
1484
|
+
try {
|
|
1485
|
+
if (hls && typeof hls.startLoad === "function") {
|
|
1486
|
+
hls.startLoad(t);
|
|
1487
|
+
}
|
|
1488
|
+
} catch (event2) {
|
|
1489
|
+
}
|
|
1490
|
+
if (seekRetryTimer) {
|
|
1491
|
+
clearTimeout(seekRetryTimer);
|
|
1492
|
+
}
|
|
1493
|
+
seekRetryTimer = setTimeout(function() {
|
|
1494
|
+
applyPendingSeek(false);
|
|
1495
|
+
}, 200);
|
|
1496
|
+
return;
|
|
1497
|
+
}
|
|
1498
|
+
}
|
|
1499
|
+
clearSeekRetry();
|
|
1421
1500
|
if (t > 0) {
|
|
1422
1501
|
maxSeeTime = Math.max(maxSeeTime, t);
|
|
1423
1502
|
if (firstSeekTime < 0) {
|
|
1424
1503
|
firstSeekTime = t;
|
|
1425
1504
|
}
|
|
1426
1505
|
}
|
|
1506
|
+
seekApplyLock = true;
|
|
1427
1507
|
seekTime = 0;
|
|
1428
1508
|
try {
|
|
1429
1509
|
video.currentTime = t;
|
|
1430
1510
|
} catch (event2) {
|
|
1431
1511
|
seekTime = t;
|
|
1512
|
+
seekApplyLock = false;
|
|
1513
|
+
}
|
|
1514
|
+
setTimeout(function() {
|
|
1515
|
+
seekApplyLock = false;
|
|
1516
|
+
}, 800);
|
|
1517
|
+
}, recoverDecodeError = function() {
|
|
1518
|
+
if (decodeRecoverCount >= 2) {
|
|
1519
|
+
return false;
|
|
1520
|
+
}
|
|
1521
|
+
decodeRecoverCount++;
|
|
1522
|
+
var resumeAt = playTime > 0 ? playTime : vars["seek"] ? parseFloat(vars["seek"]) : 0;
|
|
1523
|
+
if (isNaN(resumeAt) || resumeAt < 0) {
|
|
1524
|
+
resumeAt = 0;
|
|
1432
1525
|
}
|
|
1526
|
+
try {
|
|
1527
|
+
if (hls && typeof hls.recoverMediaError === "function") {
|
|
1528
|
+
hls.recoverMediaError();
|
|
1529
|
+
if (resumeAt > 0) {
|
|
1530
|
+
seekTime = resumeAt;
|
|
1531
|
+
seekApplyLock = false;
|
|
1532
|
+
setTimeout(function() {
|
|
1533
|
+
applyPendingSeek(true);
|
|
1534
|
+
}, 300);
|
|
1535
|
+
}
|
|
1536
|
+
return true;
|
|
1537
|
+
}
|
|
1538
|
+
} catch (event2) {
|
|
1539
|
+
}
|
|
1540
|
+
try {
|
|
1541
|
+
var soft = Math.max(0, resumeAt - 1.5);
|
|
1542
|
+
seekTime = resumeAt;
|
|
1543
|
+
seekApplyLock = false;
|
|
1544
|
+
if (video) {
|
|
1545
|
+
video.currentTime = soft;
|
|
1546
|
+
}
|
|
1547
|
+
setTimeout(function() {
|
|
1548
|
+
applyPendingSeek(true);
|
|
1549
|
+
if (video && video.paused && vars["autoplay"]) {
|
|
1550
|
+
try {
|
|
1551
|
+
video.play();
|
|
1552
|
+
} catch (e2) {
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
}, 400);
|
|
1556
|
+
return true;
|
|
1557
|
+
} catch (event2) {
|
|
1558
|
+
}
|
|
1559
|
+
return false;
|
|
1433
1560
|
}, loadedMetaData = function() {
|
|
1434
1561
|
eventTarget("loadedMetaData", {
|
|
1435
1562
|
width: CK.getWidth(),
|
|
@@ -1606,6 +1733,11 @@ var require_ckplayer = __commonJS({
|
|
|
1606
1733
|
if (!isUndefined(errorInfo.message)) {
|
|
1607
1734
|
msg = errorInfo.message;
|
|
1608
1735
|
}
|
|
1736
|
+
if (code === 3 && recoverDecodeError()) {
|
|
1737
|
+
CT.error = { code, message: msg };
|
|
1738
|
+
eventTarget("error", CT.error);
|
|
1739
|
+
return;
|
|
1740
|
+
}
|
|
1609
1741
|
CT.error = { code, message: msg };
|
|
1610
1742
|
showError();
|
|
1611
1743
|
} else {
|
|
@@ -1655,6 +1787,8 @@ var require_ckplayer = __commonJS({
|
|
|
1655
1787
|
eventTarget("error", CT.error);
|
|
1656
1788
|
},
|
|
1657
1789
|
seeked: function() {
|
|
1790
|
+
seekApplyLock = false;
|
|
1791
|
+
decodeRecoverCount = 0;
|
|
1658
1792
|
if (paused) {
|
|
1659
1793
|
player.play();
|
|
1660
1794
|
}
|
|
@@ -2606,10 +2740,6 @@ var require_ckplayer = __commonJS({
|
|
|
2606
2740
|
firstSeekTime = target;
|
|
2607
2741
|
}
|
|
2608
2742
|
}
|
|
2609
|
-
try {
|
|
2610
|
-
video.currentTime = target;
|
|
2611
|
-
} catch (event2) {
|
|
2612
|
-
}
|
|
2613
2743
|
return player;
|
|
2614
2744
|
}
|
|
2615
2745
|
if (duration && isFinite(duration) && duration > 0 && target > duration) {
|
|
@@ -2621,6 +2751,11 @@ var require_ckplayer = __commonJS({
|
|
|
2621
2751
|
if (vars["timeScheduleAdjust"] == 5 && target > maxSeeTime && seekTime && Math.abs(seekTime - target) < 0.5) {
|
|
2622
2752
|
maxSeeTime = Math.max(maxSeeTime, target);
|
|
2623
2753
|
}
|
|
2754
|
+
if (target > 0.5 && !timeInBuffered(target) && video.readyState < 3) {
|
|
2755
|
+
seekTime = target;
|
|
2756
|
+
applyPendingSeek(false);
|
|
2757
|
+
return player;
|
|
2758
|
+
}
|
|
2624
2759
|
try {
|
|
2625
2760
|
video.currentTime = target;
|
|
2626
2761
|
seekTime = 0;
|
|
@@ -5780,7 +5915,7 @@ var require_ckplayer = __commonJS({
|
|
|
5780
5915
|
}
|
|
5781
5916
|
varsTime += time;
|
|
5782
5917
|
return language["lookBack"] + date("H:i:s", varsTime);
|
|
5783
|
-
}, loadJs = function(file, callback2) {
|
|
5918
|
+
}, loadJs = function(file, callback2, isRetry) {
|
|
5784
5919
|
var fn2 = function() {
|
|
5785
5920
|
};
|
|
5786
5921
|
if (!isUndefined(callback2)) {
|
|
@@ -5815,19 +5950,37 @@ var require_ckplayer = __commonJS({
|
|
|
5815
5950
|
;
|
|
5816
5951
|
}, 10);
|
|
5817
5952
|
};
|
|
5818
|
-
var
|
|
5819
|
-
|
|
5820
|
-
|
|
5953
|
+
var removeScript = function() {
|
|
5954
|
+
try {
|
|
5955
|
+
if (script.parentNode) {
|
|
5956
|
+
script.parentNode.removeChild(script);
|
|
5957
|
+
}
|
|
5958
|
+
} catch (event2) {
|
|
5821
5959
|
}
|
|
5960
|
+
};
|
|
5961
|
+
var w3c = function() {
|
|
5822
5962
|
removeListener(script, "load", w3c);
|
|
5823
5963
|
removeListener(script, "error", w3cError);
|
|
5964
|
+
doReady();
|
|
5824
5965
|
};
|
|
5825
5966
|
var w3cError = function() {
|
|
5826
|
-
if (valType(fn2) == "function") {
|
|
5827
|
-
fn2();
|
|
5828
|
-
}
|
|
5829
5967
|
removeListener(script, "load", w3c);
|
|
5830
5968
|
removeListener(script, "error", w3cError);
|
|
5969
|
+
removeScript();
|
|
5970
|
+
if (!isRetry && (!vars || vars["cdnFallback"] !== false)) {
|
|
5971
|
+
var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
5972
|
+
var m2 = String(file).match(/\/(hls\.js|flv\.js|mpegts\.js|language)\/([^/?#]+)(?:[?#].*)?$/i);
|
|
5973
|
+
if (cdn && cdn.indexOf("1.0.6") === -1 && m2) {
|
|
5974
|
+
if (cdn.slice(-1) !== "/") {
|
|
5975
|
+
cdn += "/";
|
|
5976
|
+
}
|
|
5977
|
+
var retryUrl = cdn + m2[1] + "/" + m2[2];
|
|
5978
|
+
if (retryUrl !== file) {
|
|
5979
|
+
loadJs(retryUrl, callback2, true);
|
|
5980
|
+
return;
|
|
5981
|
+
}
|
|
5982
|
+
}
|
|
5983
|
+
}
|
|
5831
5984
|
};
|
|
5832
5985
|
try {
|
|
5833
5986
|
addListener(script, "load", w3c);
|
|
@@ -6053,14 +6206,19 @@ var require_ckplayer = __commonJS({
|
|
|
6053
6206
|
}
|
|
6054
6207
|
function getPath(siz) {
|
|
6055
6208
|
if (typeof window !== "undefined" && window.ckplayerBasePath) {
|
|
6056
|
-
var
|
|
6057
|
-
if (
|
|
6058
|
-
|
|
6209
|
+
var base2 = window.ckplayerBasePath;
|
|
6210
|
+
if (/\/(?:assets|\.vite\/deps|_next\/static|chunks?)\/?$/i.test(base2)) {
|
|
6211
|
+
base2 = "";
|
|
6059
6212
|
}
|
|
6060
|
-
if (
|
|
6061
|
-
|
|
6213
|
+
if (base2) {
|
|
6214
|
+
if (base2.slice(-1) !== "/") {
|
|
6215
|
+
base2 += "/";
|
|
6216
|
+
}
|
|
6217
|
+
if (!isUndefined(siz)) {
|
|
6218
|
+
return base2 + siz + "/";
|
|
6219
|
+
}
|
|
6220
|
+
return base2;
|
|
6062
6221
|
}
|
|
6063
|
-
return base;
|
|
6064
6222
|
}
|
|
6065
6223
|
var scriptList = document.scripts || [], thisPath = scriptList.length ? scriptList[scriptList.length - 1].src : "";
|
|
6066
6224
|
for (var i2 = 0; i2 < scriptList.length; i2++) {
|
|
@@ -6571,10 +6729,14 @@ var import_ckplayer = __toESM(require_ckplayer());
|
|
|
6571
6729
|
var import_meta = {};
|
|
6572
6730
|
try {
|
|
6573
6731
|
if (typeof window !== "undefined" && !window.ckplayerBasePath) {
|
|
6574
|
-
|
|
6732
|
+
base = new URL("./", import_meta.url).href;
|
|
6733
|
+
if (/\/dist\/$/i.test(base) || /\/ckplayer-plus(?:@[^/]+)?\/(?:dist\/)?$/i.test(base) || /\/node_modules\/ckplayer-plus\/(?:dist\/)?$/i.test(base)) {
|
|
6734
|
+
window.ckplayerBasePath = base;
|
|
6735
|
+
}
|
|
6575
6736
|
}
|
|
6576
6737
|
} catch (e) {
|
|
6577
6738
|
}
|
|
6739
|
+
var base;
|
|
6578
6740
|
function guessPlug2(url) {
|
|
6579
6741
|
if (!url || typeof url !== "string") return "";
|
|
6580
6742
|
var path = url.split("?")[0].split("#")[0].toLowerCase();
|