 shenleiandClaude Opus 5
|
4142af09e1
|
refactor: 抽出语音作答与录音回听的公共逻辑
对话页、AI 补练页、课程跟读步骤、独立表达步骤和评估页各自复制了一套
"录音 → AI 转写 → 填入答案"的流程,其中 3 页还复制了"录音回听/播放/删除"
的按钮和方法。现在统一到 lib/widgets/voice_answer.dart:
- VoiceAnswerMixin:startVoiceInput / finishVoiceInput / toggleRecording /
playRecording / deleteRecording / disposeVoiceAnswer,状态字段名沿用各页原名,
页面的 build 代码基本不动;
- RecordingControls:录音回听按钮行。
用户可见的变化:
- "未识别到语音"提示统一为「未识别到清晰语音,请再试一次或直接输入文字。」
(对话页、补练页、独立表达步骤、评估页原本各有不同说法;跟读步骤保留
原来提示"播放示范音"的文案)。麦克风不可用、开始录音的提示保持各页原样。
- 对话页的录音回听按钮与播放按钮之间增加 8px 间距,与其他页面一致。
- 删除录音时先停止正在播放的录音(原来只有跟读步骤这样做)。
- 离开页面时,如果还在录音或设备识别中,会先停止;不保留录音时一并删除
这段录音文件。原来课程两个步骤离开时不停止录音,各页离开时也不停止
"录音回听"的录音。
flutter analyze 无问题,flutter test 142 个测试通过;现有测试未覆盖麦克风流程。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-16 17:18:45 +09:00 |
|