Bladeren bron

修改事件

lex 1 jaar geleden
bovenliggende
commit
aa5eb8f2e5
2 gewijzigde bestanden met toevoegingen van 57 en 0 verwijderingen
  1. 27 0
      src/views/attend-class/component/audio-pay.tsx
  2. 30 0
      src/views/attend-class/component/video-play.tsx

+ 27 - 0
src/views/attend-class/component/audio-pay.tsx

@@ -154,6 +154,7 @@ export default defineComponent({
       let previousBytesLoaded = 0;
       let timer: any = null;
       let previousTime = Date.now();
+      let isWaiting = false;
 
       // 缓存检测状态
       let isBuffering = false;
@@ -235,6 +236,32 @@ export default defineComponent({
 
         buffterCatch();
       });
+      element.addEventListener('waiting', () => {
+        console.log('waiting');
+        isWaiting = true;
+
+        if (!element.paused) {
+          // 如果1秒钟没有返回就重置数据
+          clearTimeout(timer);
+          resetDownloadSpeed();
+        }
+
+        // 如果有缓存检测计时器,则清除它
+        if (bufferTimeout) {
+          clearTimeout(bufferTimeout);
+        }
+      });
+      element.addEventListener('canplay', () => {
+        console.log('canplay');
+        isWaiting = false;
+        // 如果有缓存检测计时器,则清除它
+        if (bufferTimeout) {
+          clearTimeout(bufferTimeout);
+        }
+        // 标记为正在缓存
+        isBuffering = true;
+        buffterCatch();
+      });
 
       element.addEventListener('pause', () => {
         clearTimeout(timer);

+ 30 - 0
src/views/attend-class/component/video-play.tsx

@@ -221,6 +221,8 @@ export default defineComponent({
       let timer: any = null;
       let previousTime = Date.now();
 
+      let isWaiting = false;
+
       // 缓存检测状态
       let isBuffering = false;
       // 缓存检测计时器
@@ -291,6 +293,34 @@ export default defineComponent({
           resetDownloadSpeed();
         }
 
+        if (!isWaiting) {
+          // 如果有缓存检测计时器,则清除它
+          if (bufferTimeout) {
+            clearTimeout(bufferTimeout);
+          }
+          // 标记为正在缓存
+          isBuffering = true;
+          buffterCatch();
+        }
+      });
+      element.addEventListener('waiting', () => {
+        console.log('waiting');
+        isWaiting = true;
+
+        if (!element.paused) {
+          // 如果1秒钟没有返回就重置数据
+          clearTimeout(timer);
+          resetDownloadSpeed();
+        }
+
+        // 如果有缓存检测计时器,则清除它
+        if (bufferTimeout) {
+          clearTimeout(bufferTimeout);
+        }
+      });
+      element.addEventListener('canplay', () => {
+        console.log('canplay');
+        isWaiting = false;
         // 如果有缓存检测计时器,则清除它
         if (bufferTimeout) {
           clearTimeout(bufferTimeout);