【音视频、chatGpt】h5页面最小化后,再激活后视频停住问题的解决

目录

现象

观察

解决


现象

页面有时候要切换,要最小化;短时间或者几个小时内切换回来,视频可以正常续上;而放置较长时间,几个小时或者一晚上,切换回来后,视频可能卡死

观察

切换页面:

几个小时内都比较正常,不会卡死

放置一个晚上后,页面卡死,使用wireshark观察,流量依旧在,而视频流也在传

根据打印发现有几个缓冲组(解决后的代码打印)

解决

复制代码
document.addEventListener('visibilitychange', function(){
        var bufferedTimeRanges = _SELF.video_object.buffered;

        for (var i = 0; i < bufferedTimeRanges.length; i++) {
            var start = bufferedTimeRanges.start(i);
            var end = bufferedTimeRanges.end(i);
            console.log("已缓冲时间段:" + start + " - " + end);
        }
        if (_SELF.videoBeginTime) {
          _SELF.IntervelNum = parseInt((new Date().getTime() - _SELF.videoBeginTime) / 40)
          _SELF.delayData = []
        }
        if (_SELF.pagePaused) {
          var videoBuffered = _SELF.video_object.buffered;
          console.log("videoBuffered.length",videoBuffered.length)
          if (videoBuffered.length > 0) {
            let videoEnd = videoBuffered.end(videoBuffered.length-1);
            console.log("videoEnd - _SELF.video_object.currentTime",videoEnd ,_SELF.video_object.currentTime)
            if (videoEnd - _SELF.video_object.currentTime > 0.15) {
              _SELF.video_object.currentTime = videoEnd - 0.1;
            }
          }
          var audioBuffered = _SELF.audio_object.buffered;
          if (audioBuffered.length > 0) {
            let audioEnd = audioBuffered.end(audioBuffered.length-1);
            if (audioEnd - _SELF.audio_object.currentTime > 0.15) {
              _SELF.audio_object.currentTime = audioEnd - 0.1;
            }
          }
          _SELF.pagePaused = false;
        }
      });
相关推荐
道一2311 小时前
在Electron应用中控制剪贴板操-复制&粘贴
前端·javascript·electron
xulihang11 小时前
如何在Windows上使用SANE扫描文档
linux·前端·javascript
fruge11 小时前
前端错误监控与上报:Sentry 接入与自定义告警规则
前端·sentry
敲敲了个代码11 小时前
11月3-5年Web前端开发面试需要达到的强度
前端·vue.js·学习·react.js·面试·职场和发展·web
曼巴UE511 小时前
UE5 C++ JSON 最简单,麻烦的方式,直接读存(一)
java·服务器·前端
半桶水专家11 小时前
Vue Pinia 插件详解
前端·javascript·vue.js
吃饺子不吃馅11 小时前
面试官:JWT、Cookie、Session、Token有什么区别?
前端·设计模式·面试
IT_陈寒12 小时前
React 19新特性实战:5个提升开发效率的技巧与避坑指南
前端·人工智能·后端
丙寅12 小时前
微信小程序反编译遇到 TypeError: _typeof3 is not a function
开发语言·javascript·ecmascript
青衫码上行12 小时前
【Java Web学习 | 第十篇】JavaScript(4) 对象
java·开发语言·前端·javascript·学习