ckplayer-plus 1.1.1 → 1.1.3
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 +3 -3
- package/dist/ckplayer.js +136 -48
- package/dist/ckplayer.min.js +2 -2
- package/dist/index.cjs +113 -40
- package/dist/index.js +113 -40
- package/dist/react.cjs +116 -40
- package/dist/react.js +116 -40
- package/dist/vue.cjs +116 -40
- package/dist/vue.js +116 -40
- package/package.json +1 -1
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.
|
|
213
|
+
var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.3/dist/";
|
|
214
214
|
function ckplayerEmbed(videoObj) {
|
|
215
215
|
var rightMenu = [
|
|
216
216
|
{
|
|
@@ -432,7 +432,7 @@ var require_ckplayer = __commonJS({
|
|
|
432
432
|
}
|
|
433
433
|
var allowCdn = !vars || vars["cdnFallback"] !== false;
|
|
434
434
|
var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
435
|
-
if (!allowCdn || !cdn || cdn.indexOf("1.1.
|
|
435
|
+
if (!allowCdn || !cdn || cdn.indexOf("1.1.3") > -1) {
|
|
436
436
|
return folder + "/" + file;
|
|
437
437
|
}
|
|
438
438
|
if (cdn.slice(-1) !== "/") {
|
|
@@ -527,7 +527,11 @@ var require_ckplayer = __commonJS({
|
|
|
527
527
|
player.muted();
|
|
528
528
|
recoveryVolume = true;
|
|
529
529
|
video.attr("preload", "auto");
|
|
530
|
-
|
|
530
|
+
if (parseResumeSeekFromVars() > 0) {
|
|
531
|
+
autoplayPending = false;
|
|
532
|
+
} else {
|
|
533
|
+
autoplayPending = true;
|
|
534
|
+
}
|
|
531
535
|
} else {
|
|
532
536
|
video.attr("preload", "metadata");
|
|
533
537
|
}
|
|
@@ -643,6 +647,9 @@ var require_ckplayer = __commonJS({
|
|
|
643
647
|
if (!seekTime) {
|
|
644
648
|
applyResumeSeekState(parseResumeSeekFromVars());
|
|
645
649
|
}
|
|
650
|
+
if (seekTime > 0) {
|
|
651
|
+
autoplayPending = false;
|
|
652
|
+
}
|
|
646
653
|
}, hlsSeekTo = function(target, force) {
|
|
647
654
|
if (!hls || typeof hls.startLoad !== "function" || !video) {
|
|
648
655
|
return false;
|
|
@@ -842,17 +849,30 @@ var require_ckplayer = __commonJS({
|
|
|
842
849
|
seekTime = resumeAt;
|
|
843
850
|
hlsResumeTarget = resumeAt;
|
|
844
851
|
hlsResumeWarmup = true;
|
|
845
|
-
hlsConf.startPosition = hlsPriorLoadTime(resumeAt);
|
|
846
852
|
}
|
|
847
853
|
hls = new Hls(hlsConf);
|
|
848
854
|
hls.loadSource(url);
|
|
849
855
|
hls.attachMedia(video);
|
|
850
856
|
hls.on(Hls.Events.MANIFEST_PARSED, function() {
|
|
851
857
|
if (hlsResumeWarmup && seekTime > 0) {
|
|
858
|
+
var loadAt = hlsPriorLoadTime(seekTime);
|
|
852
859
|
try {
|
|
853
|
-
hls.startLoad(
|
|
860
|
+
hls.startLoad(loadAt);
|
|
854
861
|
} catch (event2) {
|
|
855
862
|
}
|
|
863
|
+
setTimeout(function() {
|
|
864
|
+
if (!hlsResumeWarmup || !seekTime) {
|
|
865
|
+
return;
|
|
866
|
+
}
|
|
867
|
+
var target = seekTime;
|
|
868
|
+
if (hlsCanSafelySeekTo(target)) {
|
|
869
|
+
finishResumeSeek(target);
|
|
870
|
+
return;
|
|
871
|
+
}
|
|
872
|
+
var snap = hlsPriorLoadTime(target);
|
|
873
|
+
hlsResumeWarmup = false;
|
|
874
|
+
finishResumeSeek(snap);
|
|
875
|
+
}, 5e3);
|
|
856
876
|
return;
|
|
857
877
|
}
|
|
858
878
|
if (!hlsStartPositionUsed) {
|
|
@@ -862,8 +882,7 @@ var require_ckplayer = __commonJS({
|
|
|
862
882
|
hls.on(Hls.Events.FRAG_BUFFERED, function(event2, data) {
|
|
863
883
|
if (hlsResumeWarmup && seekTime > 0) {
|
|
864
884
|
if (hlsCanSafelySeekTo(seekTime)) {
|
|
865
|
-
|
|
866
|
-
applySeekToMedia(seekTime);
|
|
885
|
+
finishResumeSeek(seekTime);
|
|
867
886
|
}
|
|
868
887
|
return;
|
|
869
888
|
}
|
|
@@ -1599,28 +1618,94 @@ var require_ckplayer = __commonJS({
|
|
|
1599
1618
|
} catch (event2) {
|
|
1600
1619
|
}
|
|
1601
1620
|
return false;
|
|
1621
|
+
}, hlsFragAround = function(t) {
|
|
1622
|
+
if (!hls || isNaN(t) || t < 0) {
|
|
1623
|
+
return null;
|
|
1624
|
+
}
|
|
1625
|
+
try {
|
|
1626
|
+
var level = -1;
|
|
1627
|
+
if (typeof hls.currentLevel === "number" && hls.currentLevel >= 0) {
|
|
1628
|
+
level = hls.currentLevel;
|
|
1629
|
+
} else if (typeof hls.firstLevel === "number" && hls.firstLevel >= 0) {
|
|
1630
|
+
level = hls.firstLevel;
|
|
1631
|
+
} else {
|
|
1632
|
+
level = 0;
|
|
1633
|
+
}
|
|
1634
|
+
var details = hls.levels && hls.levels[level] && hls.levels[level].details;
|
|
1635
|
+
var frags = details && details.fragments;
|
|
1636
|
+
if (!frags || !frags.length) {
|
|
1637
|
+
return null;
|
|
1638
|
+
}
|
|
1639
|
+
for (var i = 0; i < frags.length; i++) {
|
|
1640
|
+
var f = frags[i];
|
|
1641
|
+
if (!f) {
|
|
1642
|
+
continue;
|
|
1643
|
+
}
|
|
1644
|
+
var start = f.start || 0;
|
|
1645
|
+
var end = start + (f.duration || 0);
|
|
1646
|
+
if (t >= start - 0.05 && t < end + 0.05) {
|
|
1647
|
+
return f;
|
|
1648
|
+
}
|
|
1649
|
+
}
|
|
1650
|
+
return frags[frags.length - 1];
|
|
1651
|
+
} catch (event2) {
|
|
1652
|
+
}
|
|
1653
|
+
return null;
|
|
1602
1654
|
}, hlsPriorLoadTime = function(t) {
|
|
1603
1655
|
if (isNaN(t) || t <= 0) {
|
|
1604
1656
|
return 0;
|
|
1605
1657
|
}
|
|
1658
|
+
var frag = hlsFragAround(t);
|
|
1659
|
+
if (frag && !isUndefined(frag.start)) {
|
|
1660
|
+
return Math.max(0, frag.start);
|
|
1661
|
+
}
|
|
1606
1662
|
return Math.max(0, t - 12);
|
|
1607
1663
|
}, hlsCanSafelySeekTo = function(t) {
|
|
1608
1664
|
if (!video || isUndefined(video.buffered) || isNaN(t) || t < 0) {
|
|
1609
1665
|
return false;
|
|
1610
1666
|
}
|
|
1667
|
+
if (!timeInBuffered(t)) {
|
|
1668
|
+
return false;
|
|
1669
|
+
}
|
|
1670
|
+
var fragStart = hlsPriorLoadTime(t);
|
|
1611
1671
|
try {
|
|
1612
1672
|
var buf = video.buffered;
|
|
1613
|
-
var needFrom = hlsPriorLoadTime(t);
|
|
1614
1673
|
for (var i = 0; i < buf.length; i++) {
|
|
1615
1674
|
var start = buf.start(i);
|
|
1616
1675
|
var end = buf.end(i);
|
|
1617
|
-
if (
|
|
1676
|
+
if (fragStart >= start - 0.35 && t <= end + 0.15) {
|
|
1618
1677
|
return true;
|
|
1619
1678
|
}
|
|
1620
1679
|
}
|
|
1621
1680
|
} catch (event2) {
|
|
1622
1681
|
}
|
|
1623
1682
|
return false;
|
|
1683
|
+
}, finishResumeSeek = function(t) {
|
|
1684
|
+
hlsResumeWarmup = false;
|
|
1685
|
+
autoplayPending = false;
|
|
1686
|
+
applySeekToMedia(t);
|
|
1687
|
+
setTimeout(function() {
|
|
1688
|
+
if (!video) {
|
|
1689
|
+
return;
|
|
1690
|
+
}
|
|
1691
|
+
try {
|
|
1692
|
+
video.pause();
|
|
1693
|
+
} catch (event2) {
|
|
1694
|
+
}
|
|
1695
|
+
paused = true;
|
|
1696
|
+
if (C["buffer"]) {
|
|
1697
|
+
C["buffer"].hide();
|
|
1698
|
+
}
|
|
1699
|
+
waited = true;
|
|
1700
|
+
if (!vars["controls"] && C["centerPlay"]) {
|
|
1701
|
+
C["centerPlay"].show();
|
|
1702
|
+
}
|
|
1703
|
+
if (C["bar"] && C["bar"]["playAndPause"]) {
|
|
1704
|
+
C["bar"]["playAndPause"]["pause"].hide();
|
|
1705
|
+
C["bar"]["playAndPause"]["play"].show();
|
|
1706
|
+
C["bar"]["playAndPause"]["refresh"].hide();
|
|
1707
|
+
}
|
|
1708
|
+
}, 120);
|
|
1624
1709
|
}, clearSeekRetry = function() {
|
|
1625
1710
|
if (seekRetryTimer) {
|
|
1626
1711
|
clearTimeout(seekRetryTimer);
|
|
@@ -1671,8 +1756,7 @@ var require_ckplayer = __commonJS({
|
|
|
1671
1756
|
}
|
|
1672
1757
|
if (hlsResumeWarmup) {
|
|
1673
1758
|
if (hlsCanSafelySeekTo(t)) {
|
|
1674
|
-
|
|
1675
|
-
applySeekToMedia(t);
|
|
1759
|
+
finishResumeSeek(t);
|
|
1676
1760
|
}
|
|
1677
1761
|
return;
|
|
1678
1762
|
}
|
|
@@ -1723,7 +1807,10 @@ var require_ckplayer = __commonJS({
|
|
|
1723
1807
|
if (isNaN(resumeAt) || resumeAt < 0) {
|
|
1724
1808
|
resumeAt = 0;
|
|
1725
1809
|
}
|
|
1726
|
-
var loadFrom =
|
|
1810
|
+
var loadFrom = hlsPriorLoadTime(resumeAt);
|
|
1811
|
+
if (decodeRecoverCount >= 2) {
|
|
1812
|
+
loadFrom = Math.max(0, loadFrom - 10);
|
|
1813
|
+
}
|
|
1727
1814
|
seekApplyLock = false;
|
|
1728
1815
|
clearSeekRetry();
|
|
1729
1816
|
try {
|
|
@@ -1733,7 +1820,8 @@ var require_ckplayer = __commonJS({
|
|
|
1733
1820
|
} catch (event2) {
|
|
1734
1821
|
}
|
|
1735
1822
|
if (resumeAt > 0 && hls && typeof hls.startLoad === "function") {
|
|
1736
|
-
|
|
1823
|
+
var target = decodeRecoverCount >= 3 ? loadFrom : resumeAt;
|
|
1824
|
+
seekTime = target;
|
|
1737
1825
|
hlsResumeTarget = resumeAt;
|
|
1738
1826
|
hlsResumeWarmup = true;
|
|
1739
1827
|
hlsLoadAt = -1;
|
|
@@ -1743,36 +1831,18 @@ var require_ckplayer = __commonJS({
|
|
|
1743
1831
|
} catch (event2) {
|
|
1744
1832
|
}
|
|
1745
1833
|
setTimeout(function() {
|
|
1746
|
-
if (hlsCanSafelySeekTo(
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
try {
|
|
1751
|
-
video.play();
|
|
1752
|
-
} catch (e2) {
|
|
1753
|
-
}
|
|
1754
|
-
}
|
|
1834
|
+
if (hlsCanSafelySeekTo(target)) {
|
|
1835
|
+
finishResumeSeek(target);
|
|
1836
|
+
} else if (decodeRecoverCount >= 2) {
|
|
1837
|
+
finishResumeSeek(loadFrom);
|
|
1755
1838
|
} else {
|
|
1756
1839
|
applyPendingSeek(false);
|
|
1757
1840
|
}
|
|
1758
|
-
},
|
|
1841
|
+
}, 600);
|
|
1759
1842
|
return true;
|
|
1760
1843
|
}
|
|
1761
1844
|
try {
|
|
1762
|
-
|
|
1763
|
-
seekTime = resumeAt;
|
|
1764
|
-
if (video) {
|
|
1765
|
-
video.currentTime = soft;
|
|
1766
|
-
}
|
|
1767
|
-
setTimeout(function() {
|
|
1768
|
-
applyPendingSeek(true);
|
|
1769
|
-
if (video && video.paused && vars["autoplay"]) {
|
|
1770
|
-
try {
|
|
1771
|
-
video.play();
|
|
1772
|
-
} catch (e2) {
|
|
1773
|
-
}
|
|
1774
|
-
}
|
|
1775
|
-
}, 400);
|
|
1845
|
+
finishResumeSeek(Math.max(0, resumeAt - 1.5));
|
|
1776
1846
|
return true;
|
|
1777
1847
|
} catch (event2) {
|
|
1778
1848
|
}
|
|
@@ -2013,7 +2083,7 @@ var require_ckplayer = __commonJS({
|
|
|
2013
2083
|
eventTarget("seeked");
|
|
2014
2084
|
},
|
|
2015
2085
|
seeking: function() {
|
|
2016
|
-
if (paused) {
|
|
2086
|
+
if (paused && !seekApplyLock && !hlsResumeWarmup && !seekTime && !autoplayPending) {
|
|
2017
2087
|
player.play();
|
|
2018
2088
|
}
|
|
2019
2089
|
var seekingTime = this.currentTime;
|
|
@@ -4213,7 +4283,10 @@ var require_ckplayer = __commonJS({
|
|
|
4213
4283
|
}
|
|
4214
4284
|
}
|
|
4215
4285
|
seekTime = player.time();
|
|
4216
|
-
|
|
4286
|
+
try {
|
|
4287
|
+
video.removeAttr("autoplay");
|
|
4288
|
+
} catch (event2) {
|
|
4289
|
+
}
|
|
4217
4290
|
changeVideo(ele.attr("data-video"));
|
|
4218
4291
|
message(language["switchTo"] + ele.htm());
|
|
4219
4292
|
C["bar"]["definition"]["button"].htm(ele.htm());
|
|
@@ -6205,7 +6278,7 @@ var require_ckplayer = __commonJS({
|
|
|
6205
6278
|
if (!isRetry && (!vars || vars["cdnFallback"] !== false)) {
|
|
6206
6279
|
var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
6207
6280
|
var m = String(file).match(/\/(hls\.js|flv\.js|mpegts\.js|language)\/([^/?#]+)(?:[?#].*)?$/i);
|
|
6208
|
-
if (cdn && cdn.indexOf("1.1.
|
|
6281
|
+
if (cdn && cdn.indexOf("1.1.3") === -1 && m) {
|
|
6209
6282
|
if (cdn.slice(-1) !== "/") {
|
|
6210
6283
|
cdn += "/";
|
|
6211
6284
|
}
|
|
@@ -7021,6 +7094,9 @@ function buildPlayerConfig(input) {
|
|
|
7021
7094
|
config[key] = opts[key];
|
|
7022
7095
|
}
|
|
7023
7096
|
}
|
|
7097
|
+
if (config.seek > 0) {
|
|
7098
|
+
config.autoplay = false;
|
|
7099
|
+
}
|
|
7024
7100
|
if (config.loaded != null && typeof config.loaded !== "function") {
|
|
7025
7101
|
delete config.loaded;
|
|
7026
7102
|
}
|
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.
|
|
207
|
+
var ckplayerPlusDefaultCdn = "https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.3/dist/";
|
|
208
208
|
function ckplayerEmbed(videoObj) {
|
|
209
209
|
var rightMenu = [
|
|
210
210
|
{
|
|
@@ -426,7 +426,7 @@ var require_ckplayer = __commonJS({
|
|
|
426
426
|
}
|
|
427
427
|
var allowCdn = !vars || vars["cdnFallback"] !== false;
|
|
428
428
|
var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
429
|
-
if (!allowCdn || !cdn || cdn.indexOf("1.1.
|
|
429
|
+
if (!allowCdn || !cdn || cdn.indexOf("1.1.3") > -1) {
|
|
430
430
|
return folder + "/" + file;
|
|
431
431
|
}
|
|
432
432
|
if (cdn.slice(-1) !== "/") {
|
|
@@ -521,7 +521,11 @@ var require_ckplayer = __commonJS({
|
|
|
521
521
|
player.muted();
|
|
522
522
|
recoveryVolume = true;
|
|
523
523
|
video.attr("preload", "auto");
|
|
524
|
-
|
|
524
|
+
if (parseResumeSeekFromVars() > 0) {
|
|
525
|
+
autoplayPending = false;
|
|
526
|
+
} else {
|
|
527
|
+
autoplayPending = true;
|
|
528
|
+
}
|
|
525
529
|
} else {
|
|
526
530
|
video.attr("preload", "metadata");
|
|
527
531
|
}
|
|
@@ -637,6 +641,9 @@ var require_ckplayer = __commonJS({
|
|
|
637
641
|
if (!seekTime) {
|
|
638
642
|
applyResumeSeekState(parseResumeSeekFromVars());
|
|
639
643
|
}
|
|
644
|
+
if (seekTime > 0) {
|
|
645
|
+
autoplayPending = false;
|
|
646
|
+
}
|
|
640
647
|
}, hlsSeekTo = function(target, force) {
|
|
641
648
|
if (!hls || typeof hls.startLoad !== "function" || !video) {
|
|
642
649
|
return false;
|
|
@@ -836,17 +843,30 @@ var require_ckplayer = __commonJS({
|
|
|
836
843
|
seekTime = resumeAt;
|
|
837
844
|
hlsResumeTarget = resumeAt;
|
|
838
845
|
hlsResumeWarmup = true;
|
|
839
|
-
hlsConf.startPosition = hlsPriorLoadTime(resumeAt);
|
|
840
846
|
}
|
|
841
847
|
hls = new Hls(hlsConf);
|
|
842
848
|
hls.loadSource(url);
|
|
843
849
|
hls.attachMedia(video);
|
|
844
850
|
hls.on(Hls.Events.MANIFEST_PARSED, function() {
|
|
845
851
|
if (hlsResumeWarmup && seekTime > 0) {
|
|
852
|
+
var loadAt = hlsPriorLoadTime(seekTime);
|
|
846
853
|
try {
|
|
847
|
-
hls.startLoad(
|
|
854
|
+
hls.startLoad(loadAt);
|
|
848
855
|
} catch (event2) {
|
|
849
856
|
}
|
|
857
|
+
setTimeout(function() {
|
|
858
|
+
if (!hlsResumeWarmup || !seekTime) {
|
|
859
|
+
return;
|
|
860
|
+
}
|
|
861
|
+
var target = seekTime;
|
|
862
|
+
if (hlsCanSafelySeekTo(target)) {
|
|
863
|
+
finishResumeSeek(target);
|
|
864
|
+
return;
|
|
865
|
+
}
|
|
866
|
+
var snap = hlsPriorLoadTime(target);
|
|
867
|
+
hlsResumeWarmup = false;
|
|
868
|
+
finishResumeSeek(snap);
|
|
869
|
+
}, 5e3);
|
|
850
870
|
return;
|
|
851
871
|
}
|
|
852
872
|
if (!hlsStartPositionUsed) {
|
|
@@ -856,8 +876,7 @@ var require_ckplayer = __commonJS({
|
|
|
856
876
|
hls.on(Hls.Events.FRAG_BUFFERED, function(event2, data) {
|
|
857
877
|
if (hlsResumeWarmup && seekTime > 0) {
|
|
858
878
|
if (hlsCanSafelySeekTo(seekTime)) {
|
|
859
|
-
|
|
860
|
-
applySeekToMedia(seekTime);
|
|
879
|
+
finishResumeSeek(seekTime);
|
|
861
880
|
}
|
|
862
881
|
return;
|
|
863
882
|
}
|
|
@@ -1593,28 +1612,94 @@ var require_ckplayer = __commonJS({
|
|
|
1593
1612
|
} catch (event2) {
|
|
1594
1613
|
}
|
|
1595
1614
|
return false;
|
|
1615
|
+
}, hlsFragAround = function(t) {
|
|
1616
|
+
if (!hls || isNaN(t) || t < 0) {
|
|
1617
|
+
return null;
|
|
1618
|
+
}
|
|
1619
|
+
try {
|
|
1620
|
+
var level = -1;
|
|
1621
|
+
if (typeof hls.currentLevel === "number" && hls.currentLevel >= 0) {
|
|
1622
|
+
level = hls.currentLevel;
|
|
1623
|
+
} else if (typeof hls.firstLevel === "number" && hls.firstLevel >= 0) {
|
|
1624
|
+
level = hls.firstLevel;
|
|
1625
|
+
} else {
|
|
1626
|
+
level = 0;
|
|
1627
|
+
}
|
|
1628
|
+
var details = hls.levels && hls.levels[level] && hls.levels[level].details;
|
|
1629
|
+
var frags = details && details.fragments;
|
|
1630
|
+
if (!frags || !frags.length) {
|
|
1631
|
+
return null;
|
|
1632
|
+
}
|
|
1633
|
+
for (var i = 0; i < frags.length; i++) {
|
|
1634
|
+
var f = frags[i];
|
|
1635
|
+
if (!f) {
|
|
1636
|
+
continue;
|
|
1637
|
+
}
|
|
1638
|
+
var start = f.start || 0;
|
|
1639
|
+
var end = start + (f.duration || 0);
|
|
1640
|
+
if (t >= start - 0.05 && t < end + 0.05) {
|
|
1641
|
+
return f;
|
|
1642
|
+
}
|
|
1643
|
+
}
|
|
1644
|
+
return frags[frags.length - 1];
|
|
1645
|
+
} catch (event2) {
|
|
1646
|
+
}
|
|
1647
|
+
return null;
|
|
1596
1648
|
}, hlsPriorLoadTime = function(t) {
|
|
1597
1649
|
if (isNaN(t) || t <= 0) {
|
|
1598
1650
|
return 0;
|
|
1599
1651
|
}
|
|
1652
|
+
var frag = hlsFragAround(t);
|
|
1653
|
+
if (frag && !isUndefined(frag.start)) {
|
|
1654
|
+
return Math.max(0, frag.start);
|
|
1655
|
+
}
|
|
1600
1656
|
return Math.max(0, t - 12);
|
|
1601
1657
|
}, hlsCanSafelySeekTo = function(t) {
|
|
1602
1658
|
if (!video || isUndefined(video.buffered) || isNaN(t) || t < 0) {
|
|
1603
1659
|
return false;
|
|
1604
1660
|
}
|
|
1661
|
+
if (!timeInBuffered(t)) {
|
|
1662
|
+
return false;
|
|
1663
|
+
}
|
|
1664
|
+
var fragStart = hlsPriorLoadTime(t);
|
|
1605
1665
|
try {
|
|
1606
1666
|
var buf = video.buffered;
|
|
1607
|
-
var needFrom = hlsPriorLoadTime(t);
|
|
1608
1667
|
for (var i = 0; i < buf.length; i++) {
|
|
1609
1668
|
var start = buf.start(i);
|
|
1610
1669
|
var end = buf.end(i);
|
|
1611
|
-
if (
|
|
1670
|
+
if (fragStart >= start - 0.35 && t <= end + 0.15) {
|
|
1612
1671
|
return true;
|
|
1613
1672
|
}
|
|
1614
1673
|
}
|
|
1615
1674
|
} catch (event2) {
|
|
1616
1675
|
}
|
|
1617
1676
|
return false;
|
|
1677
|
+
}, finishResumeSeek = function(t) {
|
|
1678
|
+
hlsResumeWarmup = false;
|
|
1679
|
+
autoplayPending = false;
|
|
1680
|
+
applySeekToMedia(t);
|
|
1681
|
+
setTimeout(function() {
|
|
1682
|
+
if (!video) {
|
|
1683
|
+
return;
|
|
1684
|
+
}
|
|
1685
|
+
try {
|
|
1686
|
+
video.pause();
|
|
1687
|
+
} catch (event2) {
|
|
1688
|
+
}
|
|
1689
|
+
paused = true;
|
|
1690
|
+
if (C["buffer"]) {
|
|
1691
|
+
C["buffer"].hide();
|
|
1692
|
+
}
|
|
1693
|
+
waited = true;
|
|
1694
|
+
if (!vars["controls"] && C["centerPlay"]) {
|
|
1695
|
+
C["centerPlay"].show();
|
|
1696
|
+
}
|
|
1697
|
+
if (C["bar"] && C["bar"]["playAndPause"]) {
|
|
1698
|
+
C["bar"]["playAndPause"]["pause"].hide();
|
|
1699
|
+
C["bar"]["playAndPause"]["play"].show();
|
|
1700
|
+
C["bar"]["playAndPause"]["refresh"].hide();
|
|
1701
|
+
}
|
|
1702
|
+
}, 120);
|
|
1618
1703
|
}, clearSeekRetry = function() {
|
|
1619
1704
|
if (seekRetryTimer) {
|
|
1620
1705
|
clearTimeout(seekRetryTimer);
|
|
@@ -1665,8 +1750,7 @@ var require_ckplayer = __commonJS({
|
|
|
1665
1750
|
}
|
|
1666
1751
|
if (hlsResumeWarmup) {
|
|
1667
1752
|
if (hlsCanSafelySeekTo(t)) {
|
|
1668
|
-
|
|
1669
|
-
applySeekToMedia(t);
|
|
1753
|
+
finishResumeSeek(t);
|
|
1670
1754
|
}
|
|
1671
1755
|
return;
|
|
1672
1756
|
}
|
|
@@ -1717,7 +1801,10 @@ var require_ckplayer = __commonJS({
|
|
|
1717
1801
|
if (isNaN(resumeAt) || resumeAt < 0) {
|
|
1718
1802
|
resumeAt = 0;
|
|
1719
1803
|
}
|
|
1720
|
-
var loadFrom =
|
|
1804
|
+
var loadFrom = hlsPriorLoadTime(resumeAt);
|
|
1805
|
+
if (decodeRecoverCount >= 2) {
|
|
1806
|
+
loadFrom = Math.max(0, loadFrom - 10);
|
|
1807
|
+
}
|
|
1721
1808
|
seekApplyLock = false;
|
|
1722
1809
|
clearSeekRetry();
|
|
1723
1810
|
try {
|
|
@@ -1727,7 +1814,8 @@ var require_ckplayer = __commonJS({
|
|
|
1727
1814
|
} catch (event2) {
|
|
1728
1815
|
}
|
|
1729
1816
|
if (resumeAt > 0 && hls && typeof hls.startLoad === "function") {
|
|
1730
|
-
|
|
1817
|
+
var target = decodeRecoverCount >= 3 ? loadFrom : resumeAt;
|
|
1818
|
+
seekTime = target;
|
|
1731
1819
|
hlsResumeTarget = resumeAt;
|
|
1732
1820
|
hlsResumeWarmup = true;
|
|
1733
1821
|
hlsLoadAt = -1;
|
|
@@ -1737,36 +1825,18 @@ var require_ckplayer = __commonJS({
|
|
|
1737
1825
|
} catch (event2) {
|
|
1738
1826
|
}
|
|
1739
1827
|
setTimeout(function() {
|
|
1740
|
-
if (hlsCanSafelySeekTo(
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
try {
|
|
1745
|
-
video.play();
|
|
1746
|
-
} catch (e2) {
|
|
1747
|
-
}
|
|
1748
|
-
}
|
|
1828
|
+
if (hlsCanSafelySeekTo(target)) {
|
|
1829
|
+
finishResumeSeek(target);
|
|
1830
|
+
} else if (decodeRecoverCount >= 2) {
|
|
1831
|
+
finishResumeSeek(loadFrom);
|
|
1749
1832
|
} else {
|
|
1750
1833
|
applyPendingSeek(false);
|
|
1751
1834
|
}
|
|
1752
|
-
},
|
|
1835
|
+
}, 600);
|
|
1753
1836
|
return true;
|
|
1754
1837
|
}
|
|
1755
1838
|
try {
|
|
1756
|
-
|
|
1757
|
-
seekTime = resumeAt;
|
|
1758
|
-
if (video) {
|
|
1759
|
-
video.currentTime = soft;
|
|
1760
|
-
}
|
|
1761
|
-
setTimeout(function() {
|
|
1762
|
-
applyPendingSeek(true);
|
|
1763
|
-
if (video && video.paused && vars["autoplay"]) {
|
|
1764
|
-
try {
|
|
1765
|
-
video.play();
|
|
1766
|
-
} catch (e2) {
|
|
1767
|
-
}
|
|
1768
|
-
}
|
|
1769
|
-
}, 400);
|
|
1839
|
+
finishResumeSeek(Math.max(0, resumeAt - 1.5));
|
|
1770
1840
|
return true;
|
|
1771
1841
|
} catch (event2) {
|
|
1772
1842
|
}
|
|
@@ -2007,7 +2077,7 @@ var require_ckplayer = __commonJS({
|
|
|
2007
2077
|
eventTarget("seeked");
|
|
2008
2078
|
},
|
|
2009
2079
|
seeking: function() {
|
|
2010
|
-
if (paused) {
|
|
2080
|
+
if (paused && !seekApplyLock && !hlsResumeWarmup && !seekTime && !autoplayPending) {
|
|
2011
2081
|
player.play();
|
|
2012
2082
|
}
|
|
2013
2083
|
var seekingTime = this.currentTime;
|
|
@@ -4207,7 +4277,10 @@ var require_ckplayer = __commonJS({
|
|
|
4207
4277
|
}
|
|
4208
4278
|
}
|
|
4209
4279
|
seekTime = player.time();
|
|
4210
|
-
|
|
4280
|
+
try {
|
|
4281
|
+
video.removeAttr("autoplay");
|
|
4282
|
+
} catch (event2) {
|
|
4283
|
+
}
|
|
4211
4284
|
changeVideo(ele.attr("data-video"));
|
|
4212
4285
|
message(language["switchTo"] + ele.htm());
|
|
4213
4286
|
C["bar"]["definition"]["button"].htm(ele.htm());
|
|
@@ -6199,7 +6272,7 @@ var require_ckplayer = __commonJS({
|
|
|
6199
6272
|
if (!isRetry && (!vars || vars["cdnFallback"] !== false)) {
|
|
6200
6273
|
var cdn = typeof window !== "undefined" && window.ckplayerPlusCdn ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
6201
6274
|
var m = String(file).match(/\/(hls\.js|flv\.js|mpegts\.js|language)\/([^/?#]+)(?:[?#].*)?$/i);
|
|
6202
|
-
if (cdn && cdn.indexOf("1.1.
|
|
6275
|
+
if (cdn && cdn.indexOf("1.1.3") === -1 && m) {
|
|
6203
6276
|
if (cdn.slice(-1) !== "/") {
|
|
6204
6277
|
cdn += "/";
|
|
6205
6278
|
}
|
|
@@ -7007,6 +7080,9 @@ function buildPlayerConfig(input) {
|
|
|
7007
7080
|
config[key] = opts[key];
|
|
7008
7081
|
}
|
|
7009
7082
|
}
|
|
7083
|
+
if (config.seek > 0) {
|
|
7084
|
+
config.autoplay = false;
|
|
7085
|
+
}
|
|
7010
7086
|
if (config.loaded != null && typeof config.loaded !== "function") {
|
|
7011
7087
|
delete config.loaded;
|
|
7012
7088
|
}
|