diff --git a/zhiyin-app/src/pages/interview/interview.vue b/zhiyin-app/src/pages/interview/interview.vue index 915a933..7427d7d 100644 --- a/zhiyin-app/src/pages/interview/interview.vue +++ b/zhiyin-app/src/pages/interview/interview.vue @@ -301,9 +301,10 @@ const startInterview = async () => { const sendAnswer = async () => { if (!inputText.value.trim() || aiLoading.value || isComplete.value) return if (!token()) { checkLogin(); return } + // 确保面试已创建(startInterview 是 async,必须 await) if (!interviewId.value) { await startInterview() - if (!interviewId.value) return // creation failed, don't discard answer + if (!interviewId.value) return // 创建失败,不丢弃用户输入 } const answer = inputText.value.trim() @@ -412,6 +413,7 @@ function startRecord() { uni.showToast({ title: '录音初始化失败', icon: 'none' }) return } + // 确保在授权通过后才开始录音,避免 stopRecord 先于 startRecord 被调用 recorder.start({ format: 'wav', sampleRate: 16000, @@ -438,6 +440,7 @@ function startRecord() { } function stopRecord() { + if (!isRecording.value) return isRecording.value = false if (!recorder) return recorder.stop()