feat: #1281 支持生成多个预览视频 + 配音前置 #1285
Reference in New Issue
Block a user
Delete Branch "feat/1281-multi-preview-with-voice"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
改动内容
步骤顺序调整
将配音选择移到预览之前,让预览视频可以包含配音音频。
多预览功能
配音传入预览
voice_ids参数(后端 APICreatePreviewRequest.voice_ids已支持)voiceMode自动选择selectedVoice(preset/custom)或selectedClonedVoice(clone)文件变更
constants.tsuseStep4Preview.tsStep4GeneratePreview.tsxGeneratePage.tsxGenerateStepContent.tsxuseStepNavigation.tsPreviewVideoPanel.tsx🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[GenerateStepContent.tsx] 组件复用逻辑验证
Step5VoiceSelect复用为Step3VoiceSelect。虽然 props 传递看起来兼容(selectedVoice,onSelectedVoiceChange),但建议确认Step5VoiceSelect组件内部是否存在硬编码的步骤编号(如currentStep === 5)或仅在第 5 步才触发的副作用逻辑,避免因步骤变更导致组件内部逻辑异常。[GeneratePage.tsx] 空值校验建议
previewVoiceIds的计算逻辑中,若未选择配音会返回空数组[]。建议确认useStepNavigation中的canProceed逻辑已包含对“是否已选择配音”的校验,防止用户在未选择配音的情况下进入 Step4(预览)导致接口报错或生成失败。✅ 良好实践
Step4GeneratePreview.tsx中,渲染video和访问item.result属性前均做了item.status === "ready" && item.result的存在性检查,有效避免了空指针异常。useMemo优化计算依赖,且保持了 TypeScript 类型定义的引入和更新。🤖 由 AI 代码审查机器人自动生成 | 2026-08-07 14:57:49 | 模型:
🗑️ 预览环境已清理
PR #1285 已关闭或合并,对应的预览环境已被清理。