浏览代码

修改时间

lex 1 年之前
父节点
当前提交
7f494cc66a
共有 2 个文件被更改,包括 20 次插入3 次删除
  1. 1 0
      src/student/pre-register-active/video.module.less
  2. 19 3
      src/student/pre-register-active/video.tsx

+ 1 - 0
src/student/pre-register-active/video.module.less

@@ -71,6 +71,7 @@
       &>.plyr__control[data-plyr="settings"] {
         font-size: 0;
         padding: 0;
+        background-color: transparent;
 
         &::before {
           content: ' ';

+ 19 - 3
src/student/pre-register-active/video.tsx

@@ -1,4 +1,4 @@
-import { defineComponent, onMounted, reactive, ref, watch } from 'vue'
+import { defineComponent, onMounted, onUnmounted, reactive, ref, watch } from 'vue'
 import styles from './video.module.less'
 // import poster from './images/video_bg.png'
 import { Button, Loading } from 'vant'
@@ -29,6 +29,7 @@ export default defineComponent({
       openId: route.query.openId || openId,
       loading: false,
       player: null as any,
+      playerSpeed: 1,
       intervalFnRef: null as any
     })
 
@@ -122,6 +123,12 @@ export default defineComponent({
         forms.player.currentTime = forms.videoBrowsePoint
       })
 
+      // 速度变化时
+      forms.player.on('ratechange', () => {
+        forms.playerSpeed =
+          forms.playerSpeed < forms.player.speed ? forms.player.speed : forms.playerSpeed
+      })
+
       forms.player.on('seeking', (val: any) => {
         // console.log('seeking')
         videoIntervalRef.isActive.value && videoIntervalRef.pause()
@@ -215,12 +222,14 @@ export default defineComponent({
         } else {
           tempTime[1] = Math.floor(forms.player.currentTime)
         }
+        // console.log(forms.player.speed, 'speed')
 
         if (tempTime.length >= 2) {
           // console.log(tempTime, 'tempTime', moreTime.value)
           // 处理在短时间内的时间差 【视屏拖动,点击可能会导致时间差太大】
-          const diffTime = tempTime[1] - tempTime[0] - currentTimer.counter.value > 2
-          // console.log(diffTime, 'diffTime', currentTimer.counter.value, 'value')
+          const diffTime =
+            tempTime[1] - tempTime[0] - currentTimer.counter.value * forms.playerSpeed > 2
+          console.log(diffTime, 'diffTime', currentTimer.counter.value, 'value')
           // 结束时间,如果 大于开始时间则清除
           if (tempTime[1] >= tempTime[0] && !diffTime) moreTime.value.push(tempTime)
           tempTime = []
@@ -326,6 +335,13 @@ export default defineComponent({
       }
     })
 
+    onUnmounted(() => {
+      forms.intervalFnRef?.pause()
+      currentTimer.pause()
+      // 页面计时暂停
+      pageTimer.pause()
+    })
+
     // 判断是否有openId
     if (!forms.openId) {
       router.replace({