Procházet zdrojové kódy

Merge branch 'video-tcplayer' into iteration-class

lex před 1 rokem
rodič
revize
9459d45199

+ 2 - 0
src/components/layout/imGroup.tsx

@@ -14,6 +14,8 @@ export default defineComponent({
     // const renderSuccess = ref(false);
     const origin = /(localhost|192)/.test(location.host)
       ? 'https://test.lexiaoya.cn'
+      : /online.lexiaoya.cn/.test(location.href)
+      ? 'https://kt.colexiu.com'
       : location.origin;
     const src = `${origin}/classroom-im/?userID=${userStore.getUserInfo.imUserId}&Authorization=${userStore.getToken}`;
 

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

@@ -24,7 +24,7 @@ export default defineComponent({
       default: false
     }
   },
-  emits: ['loadedmetadata', 'togglePlay', 'ended', 'reset'],
+  emits: ['loadedmetadata', 'togglePlay', 'ended', 'reset', 'error'],
   setup(props, { emit, expose }) {
     const { item, isEmtry } = toRefs(props);
     const videoFroms = reactive({
@@ -50,6 +50,14 @@ export default defineComponent({
       }
     };
 
+    // 如果视屏异常后,需要重新播放视屏
+    const onPlay = () => {
+      if (videoItem.value) {
+        videoItem.value.src(item.value.content);
+        emit('reset');
+      }
+    };
+
     //
     const toggleHideControl = (isShow: false) => {
       videoFroms.showBar = isShow;
@@ -107,9 +115,30 @@ export default defineComponent({
           videoFroms.paused = true;
           emit('ended');
         });
+
+        //
+        videoItem.value.on('pause', () => {
+          videoFroms.paused = true;
+        });
+
+        videoItem.value.on('playing', () => {
+          videoFroms.paused = false;
+        });
+
+        // 视频播放异常
+        videoItem.value.on('error', (e: any) => {
+          emit('error');
+          console.log(e, 'error');
+        });
       }
     });
+    const stop = () => {
+      videoItem.value.currentTime(0);
+      videoItem.value.pause();
+    };
     expose({
+      onPlay,
+      stop,
       // changePlayBtn,
       toggleHideControl
     });

+ 0 - 31
src/views/attend-class/index.module.less

@@ -562,34 +562,3 @@
     }
   }
 }
-
-
-.removeVisiable {
-  width: 500px;
-
-  .studentRemove {
-    padding: 20px 40px 0;
-
-    p {
-      font-size: max(18px, 16px);
-      color: #777777;
-      line-height: 30px;
-      text-align: center;
-
-      span {
-        color: #EA4132;
-      }
-    }
-  }
-
-  .btnGroupModal {
-    padding: 32px 0;
-
-    :global {
-      .n-button {
-        height: 47px;
-        min-width: 156px;
-      }
-    }
-  }
-}

+ 0 - 24
src/views/attend-class/index.tsx

@@ -1131,30 +1131,6 @@ export default defineComponent({
             </NSpace>
           </div>
         </NModal>
-
-        <NModal
-          v-model:show={data.removeVisiable}
-          preset="card"
-          class={['modalTitle', styles.removeVisiable]}
-          title={data.removeTitle}>
-          <div class={styles.studentRemove}>
-            <p>{data.removeContent}</p>
-
-            <NSpace class={styles.btnGroupModal} justify="center">
-              <NButton
-                round
-                type="primary"
-                onClick={() => {
-                  //
-                }}>
-                确定
-              </NButton>
-              <NButton round onClick={() => (data.removeVisiable = false)}>
-                取消
-              </NButton>
-            </NSpace>
-          </div>
-        </NModal>
       </div>
     );
   }