ckplayer-plus 1.1.0 → 1.1.1
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/ckplayer.js +186 -53
- package/dist/ckplayer.min.js +2 -2
- package/dist/index.cjs +150 -51
- package/dist/index.js +150 -51
- package/dist/react.cjs +154 -54
- package/dist/react.js +154 -54
- package/dist/vue.cjs +157 -55
- package/dist/vue.js +157 -55
- package/package.json +1 -1
- package/types/vue.d.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -119,8 +119,8 @@ var require_ckplayer = __commonJS({
|
|
|
119
119
|
//默认需要跳转的秒数
|
|
120
120
|
next: null,
|
|
121
121
|
//下一集按钮动作
|
|
122
|
-
loaded:
|
|
123
|
-
|
|
122
|
+
loaded: null,
|
|
123
|
+
//加载播放器后调用的函数(仅支持 function)
|
|
124
124
|
plug: "",
|
|
125
125
|
//使用插件
|
|
126
126
|
duration: 0,
|
|
@@ -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.
|
|
207
|
+
var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.1/dist/";
|
|
208
208
|
function ckplayerEmbed(videoObj) {
|
|
209
209
|
var rightMenu = [
|
|
210
210
|
{
|
|
@@ -232,9 +232,11 @@ var require_ckplayer = __commonJS({
|
|
|
232
232
|
var seekRetryTimer = null;
|
|
233
233
|
var seekRetryCount = 0;
|
|
234
234
|
var seekApplyLock = false;
|
|
235
|
+
var autoplayPending = false;
|
|
235
236
|
var decodeRecoverCount = 0;
|
|
236
237
|
var hlsStartPositionUsed = false;
|
|
237
238
|
var hlsResumeTarget = -1;
|
|
239
|
+
var hlsResumeWarmup = false;
|
|
238
240
|
var hlsLoadAt = -1;
|
|
239
241
|
var hlsLoadTs = 0;
|
|
240
242
|
var oldTime = 0, playTime = 0, firstSeekTime = -1, maxSeeTime = 0;
|
|
@@ -424,7 +426,7 @@ var require_ckplayer = __commonJS({
|
|
|
424
426
|
}
|
|
425
427
|
var allowCdn = !vars || vars["cdnFallback"] !== false;
|
|
426
428
|
var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
427
|
-
if (!allowCdn || !cdn || cdn.indexOf("1.1.
|
|
429
|
+
if (!allowCdn || !cdn || cdn.indexOf("1.1.1") > -1) {
|
|
428
430
|
return folder + "/" + file;
|
|
429
431
|
}
|
|
430
432
|
if (cdn.slice(-1) !== "/") {
|
|
@@ -518,8 +520,8 @@ var require_ckplayer = __commonJS({
|
|
|
518
520
|
player.volume(0);
|
|
519
521
|
player.muted();
|
|
520
522
|
recoveryVolume = true;
|
|
521
|
-
video.attr("
|
|
522
|
-
|
|
523
|
+
video.attr("preload", "auto");
|
|
524
|
+
autoplayPending = true;
|
|
523
525
|
} else {
|
|
524
526
|
video.attr("preload", "metadata");
|
|
525
527
|
}
|
|
@@ -671,6 +673,7 @@ var require_ckplayer = __commonJS({
|
|
|
671
673
|
seekApplyLock = false;
|
|
672
674
|
hlsStartPositionUsed = false;
|
|
673
675
|
hlsResumeTarget = -1;
|
|
676
|
+
hlsResumeWarmup = false;
|
|
674
677
|
hlsLoadAt = -1;
|
|
675
678
|
hlsLoadTs = 0;
|
|
676
679
|
decodeRecoverCount = 0;
|
|
@@ -826,27 +829,38 @@ var require_ckplayer = __commonJS({
|
|
|
826
829
|
resumeAt = parseResumeSeekFromVars();
|
|
827
830
|
}
|
|
828
831
|
if (resumeAt && resumeAt > 0 && (isUndefined(vars["live"]) || !vars["live"])) {
|
|
829
|
-
hlsConf.startPosition = resumeAt;
|
|
830
832
|
maxSeeTime = Math.max(maxSeeTime, resumeAt);
|
|
831
833
|
if (firstSeekTime < 0) {
|
|
832
834
|
firstSeekTime = resumeAt;
|
|
833
835
|
}
|
|
836
|
+
seekTime = resumeAt;
|
|
834
837
|
hlsResumeTarget = resumeAt;
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
seekTime = 0;
|
|
838
|
-
hlsStartPositionUsed = true;
|
|
839
|
-
clearSeekRetry();
|
|
838
|
+
hlsResumeWarmup = true;
|
|
839
|
+
hlsConf.startPosition = hlsPriorLoadTime(resumeAt);
|
|
840
840
|
}
|
|
841
841
|
hls = new Hls(hlsConf);
|
|
842
842
|
hls.loadSource(url);
|
|
843
843
|
hls.attachMedia(video);
|
|
844
844
|
hls.on(Hls.Events.MANIFEST_PARSED, function() {
|
|
845
|
+
if (hlsResumeWarmup && seekTime > 0) {
|
|
846
|
+
try {
|
|
847
|
+
hls.startLoad(hlsPriorLoadTime(seekTime));
|
|
848
|
+
} catch (event2) {
|
|
849
|
+
}
|
|
850
|
+
return;
|
|
851
|
+
}
|
|
845
852
|
if (!hlsStartPositionUsed) {
|
|
846
853
|
applyPendingSeek();
|
|
847
854
|
}
|
|
848
855
|
});
|
|
849
856
|
hls.on(Hls.Events.FRAG_BUFFERED, function(event2, data) {
|
|
857
|
+
if (hlsResumeWarmup && seekTime > 0) {
|
|
858
|
+
if (hlsCanSafelySeekTo(seekTime)) {
|
|
859
|
+
hlsResumeWarmup = false;
|
|
860
|
+
applySeekToMedia(seekTime);
|
|
861
|
+
}
|
|
862
|
+
return;
|
|
863
|
+
}
|
|
850
864
|
if (hlsResumeTarget <= 0 || !data || !data.frag) {
|
|
851
865
|
return;
|
|
852
866
|
}
|
|
@@ -1579,12 +1593,53 @@ var require_ckplayer = __commonJS({
|
|
|
1579
1593
|
} catch (event2) {
|
|
1580
1594
|
}
|
|
1581
1595
|
return false;
|
|
1596
|
+
}, hlsPriorLoadTime = function(t) {
|
|
1597
|
+
if (isNaN(t) || t <= 0) {
|
|
1598
|
+
return 0;
|
|
1599
|
+
}
|
|
1600
|
+
return Math.max(0, t - 12);
|
|
1601
|
+
}, hlsCanSafelySeekTo = function(t) {
|
|
1602
|
+
if (!video || isUndefined(video.buffered) || isNaN(t) || t < 0) {
|
|
1603
|
+
return false;
|
|
1604
|
+
}
|
|
1605
|
+
try {
|
|
1606
|
+
var buf = video.buffered;
|
|
1607
|
+
var needFrom = hlsPriorLoadTime(t);
|
|
1608
|
+
for (var i = 0; i < buf.length; i++) {
|
|
1609
|
+
var start = buf.start(i);
|
|
1610
|
+
var end = buf.end(i);
|
|
1611
|
+
if (t <= end + 0.15 && needFrom >= start - 0.35) {
|
|
1612
|
+
return true;
|
|
1613
|
+
}
|
|
1614
|
+
}
|
|
1615
|
+
} catch (event2) {
|
|
1616
|
+
}
|
|
1617
|
+
return false;
|
|
1582
1618
|
}, clearSeekRetry = function() {
|
|
1583
1619
|
if (seekRetryTimer) {
|
|
1584
1620
|
clearTimeout(seekRetryTimer);
|
|
1585
1621
|
seekRetryTimer = null;
|
|
1586
1622
|
}
|
|
1587
1623
|
seekRetryCount = 0;
|
|
1624
|
+
}, startPendingAutoplay = function() {
|
|
1625
|
+
if (!autoplayPending || !video || !vars["autoplay"] || seekTime || seekApplyLock || loadedmetadataNum < 1) {
|
|
1626
|
+
return;
|
|
1627
|
+
}
|
|
1628
|
+
autoplayPending = false;
|
|
1629
|
+
player.play();
|
|
1630
|
+
}, applySeekToMedia = function(t) {
|
|
1631
|
+
clearSeekRetry();
|
|
1632
|
+
seekApplyLock = true;
|
|
1633
|
+
seekTime = 0;
|
|
1634
|
+
try {
|
|
1635
|
+
video.currentTime = t;
|
|
1636
|
+
} catch (event2) {
|
|
1637
|
+
seekTime = t;
|
|
1638
|
+
seekApplyLock = false;
|
|
1639
|
+
}
|
|
1640
|
+
setTimeout(function() {
|
|
1641
|
+
seekApplyLock = false;
|
|
1642
|
+
}, 800);
|
|
1588
1643
|
}, applyPendingSeek = function(force) {
|
|
1589
1644
|
if (!seekTime || !video || seekApplyLock) {
|
|
1590
1645
|
return;
|
|
@@ -1608,14 +1663,39 @@ var require_ckplayer = __commonJS({
|
|
|
1608
1663
|
firstSeekTime = t;
|
|
1609
1664
|
}
|
|
1610
1665
|
}
|
|
1611
|
-
if (
|
|
1612
|
-
|
|
1613
|
-
|
|
1666
|
+
if (hlsResumeWarmup) {
|
|
1667
|
+
if (hlsCanSafelySeekTo(t)) {
|
|
1668
|
+
hlsResumeWarmup = false;
|
|
1669
|
+
applySeekToMedia(t);
|
|
1670
|
+
}
|
|
1614
1671
|
return;
|
|
1615
1672
|
}
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1673
|
+
if (hls && typeof hls.startLoad === "function") {
|
|
1674
|
+
if (!hlsCanSafelySeekTo(t) && t > 1) {
|
|
1675
|
+
hlsResumeWarmup = true;
|
|
1676
|
+
hlsResumeTarget = t;
|
|
1677
|
+
try {
|
|
1678
|
+
hls.startLoad(hlsPriorLoadTime(t));
|
|
1679
|
+
} catch (event2) {
|
|
1680
|
+
}
|
|
1681
|
+
seekRetryCount++;
|
|
1682
|
+
if (seekRetryCount <= 50) {
|
|
1683
|
+
if (seekRetryTimer) {
|
|
1684
|
+
clearTimeout(seekRetryTimer);
|
|
1685
|
+
}
|
|
1686
|
+
seekRetryTimer = setTimeout(function() {
|
|
1687
|
+
applyPendingSeek(false);
|
|
1688
|
+
}, 200);
|
|
1689
|
+
}
|
|
1690
|
+
return;
|
|
1691
|
+
}
|
|
1692
|
+
if (hlsSeekTo(t, !!force)) {
|
|
1693
|
+
clearSeekRetry();
|
|
1694
|
+
seekTime = 0;
|
|
1695
|
+
return;
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1698
|
+
if (!force && (!isUndefined(video.readyState) && video.readyState < 1)) {
|
|
1619
1699
|
seekRetryCount++;
|
|
1620
1700
|
if (seekRetryCount <= 50) {
|
|
1621
1701
|
if (seekRetryTimer) {
|
|
@@ -1627,45 +1707,54 @@ var require_ckplayer = __commonJS({
|
|
|
1627
1707
|
return;
|
|
1628
1708
|
}
|
|
1629
1709
|
}
|
|
1630
|
-
|
|
1631
|
-
seekApplyLock = true;
|
|
1632
|
-
seekTime = 0;
|
|
1633
|
-
try {
|
|
1634
|
-
video.currentTime = t;
|
|
1635
|
-
} catch (event2) {
|
|
1636
|
-
seekTime = t;
|
|
1637
|
-
seekApplyLock = false;
|
|
1638
|
-
}
|
|
1639
|
-
setTimeout(function() {
|
|
1640
|
-
seekApplyLock = false;
|
|
1641
|
-
}, 800);
|
|
1710
|
+
applySeekToMedia(t);
|
|
1642
1711
|
}, recoverDecodeError = function() {
|
|
1643
|
-
if (decodeRecoverCount >=
|
|
1712
|
+
if (decodeRecoverCount >= 3) {
|
|
1644
1713
|
return false;
|
|
1645
1714
|
}
|
|
1646
1715
|
decodeRecoverCount++;
|
|
1647
|
-
var resumeAt = playTime > 0 ? playTime : vars["seek"] ? parseFloat(vars["seek"]) : 0;
|
|
1716
|
+
var resumeAt = hlsResumeTarget > 0 ? hlsResumeTarget : playTime > 0 ? playTime : vars["seek"] ? parseFloat(vars["seek"]) : 0;
|
|
1648
1717
|
if (isNaN(resumeAt) || resumeAt < 0) {
|
|
1649
1718
|
resumeAt = 0;
|
|
1650
1719
|
}
|
|
1720
|
+
var loadFrom = Math.max(0, resumeAt - 12 * decodeRecoverCount);
|
|
1721
|
+
seekApplyLock = false;
|
|
1722
|
+
clearSeekRetry();
|
|
1651
1723
|
try {
|
|
1652
1724
|
if (hls && typeof hls.recoverMediaError === "function") {
|
|
1653
1725
|
hls.recoverMediaError();
|
|
1654
|
-
if (resumeAt > 0) {
|
|
1655
|
-
seekTime = resumeAt;
|
|
1656
|
-
seekApplyLock = false;
|
|
1657
|
-
setTimeout(function() {
|
|
1658
|
-
applyPendingSeek(true);
|
|
1659
|
-
}, 300);
|
|
1660
|
-
}
|
|
1661
|
-
return true;
|
|
1662
1726
|
}
|
|
1663
1727
|
} catch (event2) {
|
|
1664
1728
|
}
|
|
1729
|
+
if (resumeAt > 0 && hls && typeof hls.startLoad === "function") {
|
|
1730
|
+
seekTime = resumeAt;
|
|
1731
|
+
hlsResumeTarget = resumeAt;
|
|
1732
|
+
hlsResumeWarmup = true;
|
|
1733
|
+
hlsLoadAt = -1;
|
|
1734
|
+
hlsLoadTs = 0;
|
|
1735
|
+
try {
|
|
1736
|
+
hls.startLoad(loadFrom);
|
|
1737
|
+
} catch (event2) {
|
|
1738
|
+
}
|
|
1739
|
+
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
|
+
}
|
|
1749
|
+
} else {
|
|
1750
|
+
applyPendingSeek(false);
|
|
1751
|
+
}
|
|
1752
|
+
}, 500);
|
|
1753
|
+
return true;
|
|
1754
|
+
}
|
|
1665
1755
|
try {
|
|
1666
1756
|
var soft = Math.max(0, resumeAt - 1.5);
|
|
1667
1757
|
seekTime = resumeAt;
|
|
1668
|
-
seekApplyLock = false;
|
|
1669
1758
|
if (video) {
|
|
1670
1759
|
video.currentTime = soft;
|
|
1671
1760
|
}
|
|
@@ -1724,6 +1813,7 @@ var require_ckplayer = __commonJS({
|
|
|
1724
1813
|
C["loading"].hide();
|
|
1725
1814
|
eventTarget("canplay");
|
|
1726
1815
|
applyPendingSeek();
|
|
1816
|
+
startPendingAutoplay();
|
|
1727
1817
|
},
|
|
1728
1818
|
loadedData: function() {
|
|
1729
1819
|
eventTarget("loadeddata");
|
|
@@ -1776,6 +1866,7 @@ var require_ckplayer = __commonJS({
|
|
|
1776
1866
|
}
|
|
1777
1867
|
pSliderMouseDown = false;
|
|
1778
1868
|
loadedmetadataNum++;
|
|
1869
|
+
startPendingAutoplay();
|
|
1779
1870
|
if (!isUndefined(ad) && !isUndefined(ad["frontPlay"]) && ad["frontPlay"] && loadedmetadataNum > 1) {
|
|
1780
1871
|
player.play();
|
|
1781
1872
|
calculationAdFrontTime(duration);
|
|
@@ -1859,8 +1950,6 @@ var require_ckplayer = __commonJS({
|
|
|
1859
1950
|
msg = errorInfo.message;
|
|
1860
1951
|
}
|
|
1861
1952
|
if (code === 3 && recoverDecodeError()) {
|
|
1862
|
-
CT.error = { code, message: msg };
|
|
1863
|
-
eventTarget("error", CT.error);
|
|
1864
1953
|
return;
|
|
1865
1954
|
}
|
|
1866
1955
|
CT.error = { code, message: msg };
|
|
@@ -1900,8 +1989,6 @@ var require_ckplayer = __commonJS({
|
|
|
1900
1989
|
},
|
|
1901
1990
|
stalled: function() {
|
|
1902
1991
|
eventTarget("stalled");
|
|
1903
|
-
CT.error = { code: 13, message: "load:stalled" };
|
|
1904
|
-
eventTarget("error", CT.error);
|
|
1905
1992
|
},
|
|
1906
1993
|
suspend: function() {
|
|
1907
1994
|
eventTarget("suspend");
|
|
@@ -1914,9 +2001,7 @@ var require_ckplayer = __commonJS({
|
|
|
1914
2001
|
seeked: function() {
|
|
1915
2002
|
seekApplyLock = false;
|
|
1916
2003
|
decodeRecoverCount = 0;
|
|
1917
|
-
|
|
1918
|
-
player.play();
|
|
1919
|
-
}
|
|
2004
|
+
startPendingAutoplay();
|
|
1920
2005
|
pSliderMouseDown = false;
|
|
1921
2006
|
eventTarget("seek", { time: this.currentTime, state: "seeked" });
|
|
1922
2007
|
eventTarget("seeked");
|
|
@@ -2693,9 +2778,12 @@ var require_ckplayer = __commonJS({
|
|
|
2693
2778
|
} else {
|
|
2694
2779
|
if (loadedmetadataNum > 0 && video) {
|
|
2695
2780
|
try {
|
|
2696
|
-
video.play();
|
|
2781
|
+
var playPromise = video.play();
|
|
2782
|
+
if (playPromise && typeof playPromise.catch === "function") {
|
|
2783
|
+
playPromise.catch(function() {
|
|
2784
|
+
});
|
|
2785
|
+
}
|
|
2697
2786
|
} catch (event2) {
|
|
2698
|
-
console.error(event2);
|
|
2699
2787
|
}
|
|
2700
2788
|
}
|
|
2701
2789
|
}
|
|
@@ -2882,6 +2970,17 @@ var require_ckplayer = __commonJS({
|
|
|
2882
2970
|
applyPendingSeek(false);
|
|
2883
2971
|
return player;
|
|
2884
2972
|
}
|
|
2973
|
+
if (hls && target > 1 && !hlsCanSafelySeekTo(target)) {
|
|
2974
|
+
seekTime = target;
|
|
2975
|
+
hlsResumeWarmup = true;
|
|
2976
|
+
hlsResumeTarget = target;
|
|
2977
|
+
try {
|
|
2978
|
+
hls.startLoad(hlsPriorLoadTime(target));
|
|
2979
|
+
} catch (event2) {
|
|
2980
|
+
}
|
|
2981
|
+
applyPendingSeek(false);
|
|
2982
|
+
return player;
|
|
2983
|
+
}
|
|
2885
2984
|
if (hlsSeekTo(target, false)) {
|
|
2886
2985
|
seekTime = 0;
|
|
2887
2986
|
return player;
|
|
@@ -6100,7 +6199,7 @@ var require_ckplayer = __commonJS({
|
|
|
6100
6199
|
if (!isRetry && (!vars || vars["cdnFallback"] !== false)) {
|
|
6101
6200
|
var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
6102
6201
|
var m = String(file).match(/\/(hls\.js|flv\.js|mpegts\.js|language)\/([^/?#]+)(?:[?#].*)?$/i);
|
|
6103
|
-
if (cdn && cdn.indexOf("1.1.
|
|
6202
|
+
if (cdn && cdn.indexOf("1.1.1") === -1 && m) {
|
|
6104
6203
|
if (cdn.slice(-1) !== "/") {
|
|
6105
6204
|
cdn += "/";
|
|
6106
6205
|
}
|