Commit 59683e06b8aa9420402b5ee95127b912d341d55c
Merge branch 'ft' into 'main_dev'
fix: 修复videojs切换至其他页面,返回播放界面,视频时延问题 See merge request yunteng/thingskit-front!1207
Showing
1 changed file
with
20 additions
and
0 deletions
@@ -72,6 +72,26 @@ | @@ -72,6 +72,26 @@ | ||
72 | videoPlayInstance.value = videoJs(unref(videoPlayEl)!, unref(getOptions), () => { | 72 | videoPlayInstance.value = videoJs(unref(videoPlayEl)!, unref(getOptions), () => { |
73 | emit('ready', unref(videoPlayInstance)); | 73 | emit('ready', unref(videoPlayInstance)); |
74 | }); | 74 | }); |
75 | + //fix 修复videojs解决直播延时的问题 | ||
76 | + videoPlayInstance.value?.on('timeupdate', function () { | ||
77 | + // 计算表最新推流的时间和现在播放器播放推流的时间 | ||
78 | + let differTime = | ||
79 | + (videoPlayInstance.value as any as VideoJsPlayer)?.buffered()?.end(0) - | ||
80 | + (videoPlayInstance.value as any as VideoJsPlayer)?.currentTime(); | ||
81 | + // 差值小于1.5s时根据1倍速进行播放 | ||
82 | + if (differTime < 1.5) { | ||
83 | + videoPlayInstance.value?.playbackRate(1); | ||
84 | + } | ||
85 | + // 差值大于1.5s小于10s根据1.2倍速进行播放 | ||
86 | + if (differTime < 10 && differTime > 1.5) { | ||
87 | + videoPlayInstance.value?.playbackRate(1.2); | ||
88 | + } | ||
89 | + // 差值大于10s时进行重新加载直播流 | ||
90 | + if (differTime > 10) { | ||
91 | + init(); | ||
92 | + } | ||
93 | + }); | ||
94 | + // | ||
75 | }; | 95 | }; |
76 | 96 | ||
77 | const customInit = (getOptionsFn: (optios: VideoJsPlayerOptions) => VideoJsPlayerOptions) => { | 97 | const customInit = (getOptionsFn: (optios: VideoJsPlayerOptions) => VideoJsPlayerOptions) => { |