Переглянути джерело

Merge branch 'fix/lll_video_save' of FanYanPeng/EAIFrontend into host-nju

LiuLuLin 1 рік тому
батько
коміт
b557b45f45
1 змінених файлів з 14 додано та 0 видалено
  1. 14 0
      src/views/AiSpeakingPage/SpeakingPage.vue

+ 14 - 0
src/views/AiSpeakingPage/SpeakingPage.vue

@@ -622,6 +622,9 @@ let homeworkStartTime = null;
 const cameraPreview = ref(null);
 const recordingDuration = ref(0); // 录制时长(秒)
 let recordingTimer = null; // 录制计时器
+
+const lastSavePromptTime = ref(0); // 记录上次提示保存的时间点
+const SAVE_REMINDER_INTERVAL = 180; // 3分钟(180秒)提醒一次
 // 开始作业
 const startHomework = async () => {
   scrollToBottom();
@@ -654,6 +657,13 @@ const startHomework = async () => {
       // 启动录制时长计时器
     recordingTimer = setInterval(() => {
       recordingDuration.value += 1;
+
+      // 每3分钟提醒保存一次(180秒)
+      if (recordingDuration.value % SAVE_REMINDER_INTERVAL === 0 && 
+          recordingDuration.value !== lastSavePromptTime.value) {
+        lastSavePromptTime.value = recordingDuration.value;
+        ElMessage.warning('录制时长已超过3分钟,建议暂存当前进度');
+  }
     }, 1000);
      // 将摄像头画面绑定到 video 元素
      if (cameraPreview.value) {
@@ -715,6 +725,7 @@ const saveHomework = async () => {
             isHomeworkStarted.value = false;
             ElMessage.success("视频片段暂存成功");
             loadingInstance.close();
+            lastSavePromptTime.value = 0; // 重置提示计时
           })
         } catch (error) {
           console.error("视频片段上传失败:", error);
@@ -802,6 +813,7 @@ const resetHomework = async() => {
     if (recordingTimer) {
       clearInterval(recordingTimer);
       recordingTimer = null;
+
     }
     // 清除摄像头画面
     if (cameraPreview.value) {
@@ -830,6 +842,7 @@ const resetHomework = async() => {
       recordingDuration.value = 0;
       ElMessage.success("作业内容已清空");
       getHistory()
+      lastSavePromptTime.value = 0; // 重置提示计时
 
     } else {
       ElMessage.error("清除失败,请稍后尝试")
@@ -1010,6 +1023,7 @@ onBeforeUnmount(() => {
   if (cameraPreview.value) {
     cameraPreview.value.srcObject = null;
   }
+  lastSavePromptTime.value = 0; // 清理计时
 });