Commit d3b756175cb040cf85f999e609fd006e28ffb999
Merge branch 'fix/video-time-delay' into 'main_dev'
fix: 修复videojs切换至其他页面,返回播放界面,视频时延问题 See merge request yunteng/thingskit-view!189
Showing
1 changed file
with
16 additions
and
1 deletions
| ... | ... | @@ -125,7 +125,22 @@ const initVideo = async () => { |
| 125 | 125 | } |
| 126 | 126 | } |
| 127 | 127 | } |
| 128 | - videoPlayer = videojs(videoRef.value, options) | |
| 128 | + videoPlayer = videojs(videoRef.value, options) //fix 修复videojs解决直播延时的问题 | |
| 129 | + videoPlayer?.on('timeupdate', function () { | |
| 130 | + // 计算表最新推流的时间和现在播放器播放推流的时间 | |
| 131 | + let differTime = | |
| 132 | + (videoPlayer as any as videojs.Player)?.buffered()?.end(0) - | |
| 133 | + (videoPlayer as any as videojs.Player)?.currentTime() // 差值小于1.5s时根据1倍速进行播放 | |
| 134 | + if (differTime < 1.5) { | |
| 135 | + videoPlayer?.playbackRate(1) | |
| 136 | + } // 差值大于1.5s小于10s根据1.2倍速进行播放 | |
| 137 | + if (differTime < 10 && differTime > 1.5) { | |
| 138 | + videoPlayer?.playbackRate(1.2) | |
| 139 | + } // 差值大于10s时进行重新加载直播流 | |
| 140 | + if (differTime > 10) { | |
| 141 | + initVideo() | |
| 142 | + } | |
| 143 | + }) // | |
| 129 | 144 | } |
| 130 | 145 | } |
| 131 | 146 | } | ... | ... |