ckplayer-plus 1.0.0 → 1.0.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 +101 -45
- package/dist/ckplayer.min.js +1 -1
- package/dist/index.cjs +100 -44
- package/dist/index.js +100 -44
- package/dist/react.cjs +103 -45
- package/dist/react.js +103 -45
- package/dist/vue.cjs +103 -45
- package/dist/vue.js +103 -45
- package/package.json +1 -1
package/dist/ckplayer.js
CHANGED
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
autoPlug:true//未指定 plug 时,根据视频地址后缀自动选择 hls.js / flv.js / mpegts.js
|
|
140
140
|
};
|
|
141
141
|
// 打包时替换为真实版本;用于 bundler 下 getPath 失效时的 CDN 回退
|
|
142
|
-
var ckplayerPlusDefaultCdn='https://cdn.jsdelivr.net/npm/ckplayer-plus@1.0.
|
|
142
|
+
var ckplayerPlusDefaultCdn='https://cdn.jsdelivr.net/npm/ckplayer-plus@1.0.1/dist/';
|
|
143
143
|
function ckplayerEmbed(videoObj){
|
|
144
144
|
/*
|
|
145
145
|
* rightMenu
|
|
@@ -764,12 +764,14 @@
|
|
|
764
764
|
if(valType(vars['seek'])=='number' && vars['seek']>0){
|
|
765
765
|
seekTime=vars['seek'];
|
|
766
766
|
}
|
|
767
|
-
if(valType(vars['seek'])=='string' && vars['seek']=='cookie' && cookieName){
|
|
767
|
+
else if(valType(vars['seek'])=='string' && vars['seek']=='cookie' && cookieName){
|
|
768
768
|
var cke=player.cookie(cookieName);
|
|
769
769
|
if(cke){
|
|
770
770
|
seekTime=cke['time'];
|
|
771
771
|
}
|
|
772
|
-
|
|
772
|
+
}
|
|
773
|
+
else if(valType(vars['seek'])=='string' && vars['seek']!=='' && !isNaN(parseFloat(vars['seek']))){
|
|
774
|
+
seekTime=parseFloat(vars['seek']);
|
|
773
775
|
}
|
|
774
776
|
}
|
|
775
777
|
},
|
|
@@ -816,6 +818,9 @@
|
|
|
816
818
|
hls = new Hls();
|
|
817
819
|
hls.loadSource(url);
|
|
818
820
|
hls.attachMedia(video);
|
|
821
|
+
hls.on(Hls.Events.MANIFEST_PARSED, function(){
|
|
822
|
+
applyPendingSeek();
|
|
823
|
+
});
|
|
819
824
|
hls.on(Hls.Events.ERROR, function(event, data){
|
|
820
825
|
var code=9;
|
|
821
826
|
var message=language['error']['loadingFailed'];
|
|
@@ -1582,6 +1587,29 @@
|
|
|
1582
1587
|
}
|
|
1583
1588
|
}
|
|
1584
1589
|
},
|
|
1590
|
+
/*
|
|
1591
|
+
* applyPendingSeek
|
|
1592
|
+
* 功能:在媒体就绪后应用挂起的 seekTime
|
|
1593
|
+
*/
|
|
1594
|
+
applyPendingSeek=function(){
|
|
1595
|
+
if(!seekTime || !video){
|
|
1596
|
+
return;
|
|
1597
|
+
}
|
|
1598
|
+
if(!isUndefined(vars['live']) && ((valType(vars['live'])=='boolean' && vars['live']) || valType(vars['live'])=='number')){
|
|
1599
|
+
return;
|
|
1600
|
+
}
|
|
1601
|
+
var t=seekTime;
|
|
1602
|
+
var dur=duration || video.duration || 0;
|
|
1603
|
+
if(dur && isFinite(dur) && dur>0 && t>=dur){
|
|
1604
|
+
t=Math.max(0,dur-0.3);
|
|
1605
|
+
}
|
|
1606
|
+
seekTime=0;
|
|
1607
|
+
try{
|
|
1608
|
+
video.currentTime=t;
|
|
1609
|
+
}catch(event){
|
|
1610
|
+
seekTime=t;
|
|
1611
|
+
}
|
|
1612
|
+
},
|
|
1585
1613
|
/*
|
|
1586
1614
|
* loadedMetaData
|
|
1587
1615
|
* 功能:获取元数据后执行的函数
|
|
@@ -1633,6 +1661,7 @@
|
|
|
1633
1661
|
canPlay:function(){
|
|
1634
1662
|
C['loading'].hide();
|
|
1635
1663
|
eventTarget('canplay');
|
|
1664
|
+
applyPendingSeek();
|
|
1636
1665
|
},
|
|
1637
1666
|
loadedData:function(){
|
|
1638
1667
|
eventTarget('loadeddata');
|
|
@@ -1662,6 +1691,7 @@
|
|
|
1662
1691
|
if(CT.videoWidth || CT.videoHeight || duration){
|
|
1663
1692
|
loadedMetaData();
|
|
1664
1693
|
}
|
|
1694
|
+
applyPendingSeek();
|
|
1665
1695
|
var len = 0;
|
|
1666
1696
|
if(!isUndefined(this.buffered)){
|
|
1667
1697
|
len=this.buffered.length;
|
|
@@ -1719,6 +1749,7 @@
|
|
|
1719
1749
|
if(CT.videoWidth || CT.videoHeight || duration){
|
|
1720
1750
|
loadedMetaData();
|
|
1721
1751
|
}
|
|
1752
|
+
applyPendingSeek();
|
|
1722
1753
|
}
|
|
1723
1754
|
oldTime=playTime;
|
|
1724
1755
|
playTime=this.currentTime;
|
|
@@ -1939,9 +1970,8 @@
|
|
|
1939
1970
|
}
|
|
1940
1971
|
}
|
|
1941
1972
|
}
|
|
1942
|
-
if(seekTime && (isUndefined(vars['live']) || (!isUndefined(vars['live']) && valType(vars['live'])=='boolean' && !vars['live']))
|
|
1943
|
-
|
|
1944
|
-
seekTime=0;
|
|
1973
|
+
if(seekTime && (isUndefined(vars['live']) || (!isUndefined(vars['live']) && valType(vars['live'])=='boolean' && !vars['live']))){//如果默认需要跳转,则进行seek
|
|
1974
|
+
applyPendingSeek();
|
|
1945
1975
|
}
|
|
1946
1976
|
},
|
|
1947
1977
|
pause:function(){
|
|
@@ -2797,52 +2827,78 @@
|
|
|
2797
2827
|
/*
|
|
2798
2828
|
* seek
|
|
2799
2829
|
* 功能:监听跳转/执行跳转操作
|
|
2800
|
-
* @fn为函数时则监听视频跳转动作,@fn
|
|
2830
|
+
* @fn为函数时则监听视频跳转动作,@fn为数字(或数字字符串)时执行跳转操作
|
|
2801
2831
|
*/
|
|
2802
2832
|
seek:function(fn){
|
|
2803
2833
|
if(!isUndefined(fn)){
|
|
2804
2834
|
if(valType(fn)=='function'){
|
|
2805
2835
|
newEvent.addEventListener('seek',fn);
|
|
2806
2836
|
}
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2837
|
+
else{
|
|
2838
|
+
var target=null;
|
|
2839
|
+
if(valType(fn)=='number' && !isNaN(fn)){
|
|
2840
|
+
target=fn;
|
|
2841
|
+
}
|
|
2842
|
+
else if(valType(fn)=='string' && fn!=='' && fn!=='cookie' && !isNaN(parseFloat(fn))){
|
|
2843
|
+
target=parseFloat(fn);
|
|
2844
|
+
}
|
|
2845
|
+
if(target!==null && video){
|
|
2846
|
+
switch(vars['timeScheduleAdjust']){
|
|
2847
|
+
case 0://禁止拖动
|
|
2848
|
+
message(language['timeScheduleAdjust']['prohibit']);
|
|
2849
|
+
return player;
|
|
2850
|
+
case 1://可以拖动
|
|
2851
|
+
break;
|
|
2852
|
+
case 2://只能前进(向右拖动
|
|
2853
|
+
if(target<oldTime){
|
|
2854
|
+
message(language['timeScheduleAdjust']['prohibitBackOff']);
|
|
2855
|
+
return player;
|
|
2856
|
+
}
|
|
2857
|
+
break;
|
|
2858
|
+
case 3://是只能后退
|
|
2859
|
+
if(target>oldTime){
|
|
2860
|
+
message(language['timeScheduleAdjust']['prohibitForward']);
|
|
2861
|
+
return player;
|
|
2862
|
+
}
|
|
2863
|
+
break;
|
|
2864
|
+
case 4://只能前进但能回到第一次拖动时的位置
|
|
2865
|
+
if(target<firstSeekTime){
|
|
2866
|
+
waitingMessage=false;
|
|
2867
|
+
try{video.currentTime=firstSeekTime;}catch(event){}
|
|
2868
|
+
message(language['timeScheduleAdjust']['prohibitLookBack']);
|
|
2869
|
+
return player;
|
|
2870
|
+
}
|
|
2871
|
+
break;
|
|
2872
|
+
case 5://看过的地方可以随意拖动
|
|
2873
|
+
if(target>maxSeeTime){
|
|
2874
|
+
waitingMessage=false;
|
|
2875
|
+
try{video.currentTime=maxSeeTime;}catch(event){}
|
|
2876
|
+
message(language['timeScheduleAdjust']['prohibitForwardNotViewed']);
|
|
2877
|
+
return player;
|
|
2878
|
+
}
|
|
2879
|
+
break;
|
|
2880
|
+
}
|
|
2881
|
+
pSliderMouseDown=false;
|
|
2882
|
+
// 媒体未就绪时先记录,待 canplay/时长就绪后再应用
|
|
2883
|
+
var ready=video.readyState>=2 || (duration && isFinite(duration) && duration>0);
|
|
2884
|
+
if(!ready){
|
|
2885
|
+
seekTime=target;
|
|
2886
|
+
try{video.currentTime=target;}catch(event){}
|
|
2887
|
+
return player;
|
|
2888
|
+
}
|
|
2889
|
+
if(duration && isFinite(duration) && duration>0 && target>duration){
|
|
2890
|
+
target=Math.max(0,duration-0.3);
|
|
2891
|
+
}
|
|
2892
|
+
if(target<0){
|
|
2893
|
+
target=0;
|
|
2894
|
+
}
|
|
2895
|
+
try{
|
|
2896
|
+
video.currentTime=target;
|
|
2897
|
+
seekTime=0;
|
|
2898
|
+
}catch(event){
|
|
2899
|
+
seekTime=target;
|
|
2900
|
+
}
|
|
2843
2901
|
}
|
|
2844
|
-
pSliderMouseDown=false;
|
|
2845
|
-
video.currentTime=fn;
|
|
2846
2902
|
}
|
|
2847
2903
|
}
|
|
2848
2904
|
return player;
|