Browse Source

fix 初次抓拍逻辑。状态准备好后,尽早抓拍。

Michael Wang 5 years ago
parent
commit
6106aca485
1 changed files with 7 additions and 5 deletions
  1. 7 5
      src/features/OnlineExam/Examing/ExamingHome.vue

+ 7 - 5
src/features/OnlineExam/Examing/ExamingHome.vue

@@ -246,12 +246,16 @@ export default {
 
       let initSnapshotTrialTimes = 0;
       this.initSnapInterval = setInterval(() => {
-        if (initSnapshotTrialTimes >= 5) {
+        const video = document.getElementById("video");
+        const videoStartFailed =
+          !video || video.readyState !== 4 || !video.srcObject.active;
+        if (videoStartFailed && initSnapshotTrialTimes < 5) {
+          initSnapshotTrialTimes++;
+        } else {
           // 超过6次后,强行抓拍,如果抓拍不成功,则会因抓拍不成功而退出。
           clearInterval(this.initSnapInterval);
 
-          const video = document.getElementById("video");
-          if (!video || video.readyState !== 4 || !video.srcObject.active) {
+          if (videoStartFailed) {
             this.$Message.error({
               content: "摄像头没有正常启用",
               duration: 5,
@@ -273,8 +277,6 @@ export default {
             );
             this.toggleSnapNow(); // 开启抓拍才在进入考试时抓拍一张
           }
-        } else {
-          initSnapshotTrialTimes++;
         }
       }, 10 * 1000);