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,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 | } |