feat: Step5 配音选择改为展示用户上传的配音素材 #1252
Reference in New Issue
Block a user
Delete Branch "feat/step5-material-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?
变更说明
将生成流程第5步「选择配音」从展示音色列表改为展示用户已上传的配音素材。
修改文件
Step5VoiceSelect.tsx - 完全重写
useQuery+getAssetsByKind("voice")获取配音素材selectedVoice+onSelectedVoiceChangeGenerateStepContent.tsx - Step5 传参精简
selectedVoice和onSelectedVoiceChangeuseStep7Generate.ts - voiceName 查找逻辑更新
selectedVoiceID 查找 name🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
代码审查结果 - PR #1252
⚠️ 问题(1个需要修改)
new Audio()创建了音频对象并赋值给audioRef.current,但在组件卸载时没有进行清理(pause 和置空)。如果用户在音频播放过程中切换页面或组件销毁,音频可能会继续在后台播放,且 Audio 对象无法被垃圾回收,导致内存泄漏。useEffect清理函数,在组件卸载时暂停音频并释放引用。💡 建议(2个可选)
window.location.href。window.location.href = "/voices"会导致页面完全刷新,丢失 React 应用的状态。建议使用项目配置的路由实例(如useNavigate或router.push)进行客户端跳转,以保持单页应用体验。audio.play().catch(...)目前仅做了静默处理(设置 playingId 为 null)。如果音频格式不支持或网络错误,用户无法感知。建议在 catch 中添加console.error或 UI 提示,方便排查问题。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-08-07 04:00:54 | 模型:
🗑️ 预览环境已清理
PR #1252 已关闭或合并,对应的预览环境已被清理。