ckplayer-plus 1.1.5 → 1.1.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/dist/ckplayer.js +35 -32
- package/dist/ckplayer.min.js +2 -2
- package/dist/index.cjs +31 -33
- package/dist/index.js +31 -33
- package/dist/react.cjs +31 -33
- package/dist/react.js +31 -33
- package/dist/vue.cjs +31 -33
- package/dist/vue.js +31 -33
- package/package.json +1 -1
package/dist/ckplayer.js
CHANGED
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
cdnFallback:true// getPath 失败时是否回退到 jsDelivr(内网可设 false,并配置 pluginPath)
|
|
142
142
|
};
|
|
143
143
|
// 打包时替换为真实版本;用于 bundler 下 getPath 失效时的 CDN 回退
|
|
144
|
-
var ckplayerPlusDefaultCdn='https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.
|
|
144
|
+
var ckplayerPlusDefaultCdn='https://cdn.jsdelivr.net/npm/ckplayer-plus@1.1.6/dist/';
|
|
145
145
|
function ckplayerEmbed(videoObj){
|
|
146
146
|
/*
|
|
147
147
|
* rightMenu
|
|
@@ -181,6 +181,7 @@
|
|
|
181
181
|
var hlsResumeWarmup=false;//HLS 续播先预热首个可解码分片,再定位目标时间
|
|
182
182
|
var hlsLoadAt=-1;//最近一次 hls.startLoad 目标
|
|
183
183
|
var hlsLoadTs=0;//最近一次 hls.startLoad 时间戳
|
|
184
|
+
var hlsScrubResumePlay=false;//用户拖动后是否需要在 seeked 时恢复播放
|
|
184
185
|
var oldTime=0,playTime=0,firstSeekTime=-1,maxSeeTime=0;//oldTime=记录上次播放时间,playTime=当前播放时间,firstSeekTime=记录第一次拖动的时间,maxSeeTime=看过的最大时间
|
|
185
186
|
var isChangeDef=true;//是否需要重置清晰度
|
|
186
187
|
var playType='';//播放类别,默认='',是通过api接口播放,='button'则判定是通过点击按钮播放
|
|
@@ -446,7 +447,7 @@
|
|
|
446
447
|
}
|
|
447
448
|
var allowCdn=!vars || vars['cdnFallback']!==false;
|
|
448
449
|
var cdn=(typeof window!=='undefined' && window.ckplayerPlusCdn) ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
449
|
-
if(!allowCdn || !cdn || cdn.indexOf('1.1.
|
|
450
|
+
if(!allowCdn || !cdn || cdn.indexOf('1.1.6')>-1){
|
|
450
451
|
// 避免占位版本或显式关闭 CDN 时请求坏地址;交给相对路径或业务 pluginPath
|
|
451
452
|
return folder+'/'+file;
|
|
452
453
|
}
|
|
@@ -820,50 +821,37 @@
|
|
|
820
821
|
},
|
|
821
822
|
/*
|
|
822
823
|
* hlsInteractiveSeek
|
|
823
|
-
* 功能:用户拖动/点击进度条时的 HLS
|
|
824
|
-
*
|
|
824
|
+
* 功能:用户拖动/点击进度条时的 HLS 跳转
|
|
825
|
+
* 对齐 EZ/标准 hls.js 做法:只改 video.currentTime,由 hls.js 内部响应 seeking 拉片。
|
|
826
|
+
* 禁止再手动 startLoad,否则会与内部加载竞态、取消 .ts 并永久转圈。
|
|
825
827
|
*/
|
|
826
828
|
hlsInteractiveSeek=function(target){
|
|
827
|
-
if(!hls || !video
|
|
829
|
+
if(!hls || !video){
|
|
828
830
|
return false;
|
|
829
831
|
}
|
|
830
832
|
if(isNaN(target) || target<0){
|
|
831
833
|
target=0;
|
|
832
834
|
}
|
|
833
|
-
var
|
|
835
|
+
var dur=duration || video.duration || 0;
|
|
836
|
+
if(dur && isFinite(dur) && dur>0 && target>=dur){
|
|
837
|
+
target=Math.max(0,dur-0.3);
|
|
838
|
+
}
|
|
839
|
+
hlsScrubResumePlay=!paused;
|
|
834
840
|
clearSeekRetry();
|
|
835
|
-
// 退出续播预热态,避免拖动被当成断点续播而一直等前片 / 强制暂停
|
|
836
841
|
hlsResumeWarmup=false;
|
|
837
|
-
hlsResumeTarget
|
|
842
|
+
hlsResumeTarget=-1;
|
|
838
843
|
seekTime=0;
|
|
839
844
|
seekApplyLock=true;
|
|
840
|
-
var loadAt=hlsFragStartTime(target);
|
|
841
|
-
if(loadAt<=0 && target>0){
|
|
842
|
-
loadAt=Math.max(0,target);
|
|
843
|
-
}
|
|
844
|
-
hlsLoadAt=loadAt;
|
|
845
|
-
hlsLoadTs=Date.now();
|
|
846
|
-
try{
|
|
847
|
-
hls.startLoad(loadAt);
|
|
848
|
-
}catch(event){}
|
|
849
845
|
try{
|
|
850
846
|
video.currentTime=target;
|
|
851
847
|
}catch(event){
|
|
852
|
-
|
|
848
|
+
seekApplyLock=false;
|
|
849
|
+
return false;
|
|
853
850
|
}
|
|
851
|
+
// 短暂锁避免 seeking 钩子里抢先 play 打断分片;seeked 后再恢复
|
|
854
852
|
setTimeout(function(){
|
|
855
853
|
seekApplyLock=false;
|
|
856
|
-
|
|
857
|
-
if(C['buffer']){
|
|
858
|
-
C['buffer'].hide();
|
|
859
|
-
}
|
|
860
|
-
waited=true;
|
|
861
|
-
if(wasPlaying && paused){
|
|
862
|
-
try{
|
|
863
|
-
player.play();
|
|
864
|
-
}catch(errPlay){}
|
|
865
|
-
}
|
|
866
|
-
},200);
|
|
854
|
+
},120);
|
|
867
855
|
return true;
|
|
868
856
|
},
|
|
869
857
|
/*
|
|
@@ -878,6 +866,7 @@
|
|
|
878
866
|
hlsResumeWarmup=false;
|
|
879
867
|
hlsLoadAt=-1;
|
|
880
868
|
hlsLoadTs=0;
|
|
869
|
+
hlsScrubResumePlay=false;
|
|
881
870
|
decodeRecoverCount=0;
|
|
882
871
|
if(hls){
|
|
883
872
|
try{
|
|
@@ -1043,9 +1032,12 @@
|
|
|
1043
1032
|
hls=null;
|
|
1044
1033
|
}
|
|
1045
1034
|
var hlsConf={
|
|
1046
|
-
//
|
|
1035
|
+
// 对齐常见在线 M3U8 播放器:更大前向/后向缓冲,拖动更易命中已缓存区间
|
|
1036
|
+
enableWorker:false,
|
|
1047
1037
|
maxBufferLength:30,
|
|
1048
|
-
maxMaxBufferLength:
|
|
1038
|
+
maxMaxBufferLength:600,
|
|
1039
|
+
maxBufferSize:60*1000*1000,
|
|
1040
|
+
backBufferLength:90
|
|
1049
1041
|
};
|
|
1050
1042
|
var resumeAt=seekTime;
|
|
1051
1043
|
if(!resumeAt){
|
|
@@ -2513,6 +2505,17 @@
|
|
|
2513
2505
|
decodeRecoverCount=0;
|
|
2514
2506
|
startPendingAutoplay();
|
|
2515
2507
|
pSliderMouseDown=false;
|
|
2508
|
+
waited=true;
|
|
2509
|
+
if(C['buffer']){
|
|
2510
|
+
C['buffer'].hide();
|
|
2511
|
+
}
|
|
2512
|
+
// 用户拖动后恢复播放(标准 video + hls.js 行为)
|
|
2513
|
+
if(hlsScrubResumePlay){
|
|
2514
|
+
hlsScrubResumePlay=false;
|
|
2515
|
+
try{
|
|
2516
|
+
player.play();
|
|
2517
|
+
}catch(event){}
|
|
2518
|
+
}
|
|
2516
2519
|
eventTarget('seek',{time:this.currentTime,state:'seeked'});
|
|
2517
2520
|
eventTarget('seeked');
|
|
2518
2521
|
},
|
|
@@ -7407,7 +7410,7 @@
|
|
|
7407
7410
|
if(!isRetry && (!vars || vars['cdnFallback']!==false)){
|
|
7408
7411
|
var cdn=(typeof window!=='undefined' && window.ckplayerPlusCdn) ? window.ckplayerPlusCdn : ckplayerPlusDefaultCdn;
|
|
7409
7412
|
var m=String(file).match(/\/(hls\.js|flv\.js|mpegts\.js|language)\/([^/?#]+)(?:[?#].*)?$/i);
|
|
7410
|
-
if(cdn && cdn.indexOf('1.1.
|
|
7413
|
+
if(cdn && cdn.indexOf('1.1.6')===-1 && m){
|
|
7411
7414
|
if(cdn.slice(-1)!=='/'){
|
|
7412
7415
|
cdn+='/';
|
|
7413
7416
|
}
|