Commit 5f2633ad954b81148a8c50275c859361fe34c4bb
1 parent
8c0b5609
fix: 修复videojs切换至其他页面,返回播放界面,视频时延问题
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) => { |