fix: 预览功能4项优化(数量输入+并发创建+视频播放+填充修复) #1293
Reference in New Issue
Block a user
Delete Branch "fix/preview-improvements"
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?
改动内容
1. 预览数量输入改造(Step4GeneratePreview.tsx)
InputNumber数字输入框,支持 1~10 自定义数量2. 前端并发创建预览任务(useStep4Preview.ts)
for循环中await createPreview(...)串行请求改为Promise.all并行创建3. 预览卡片视频播放修复(Step4GeneratePreview.tsx)
<video>标签添加controls autoPlay muted loop属性4. 预览卡片视频填充修复(Step4GeneratePreview.tsx)
objectFit: "contain"→objectFit: "cover"验证
代码审查结果 - PR #1293
⚠️ 问题(2个需要修改)
<video>标签中添加了autoPlay和loop属性。由于该组件支持生成最多 10 个预览(根据InputNumber的max={10}),当用户选择生成多个预览时,页面将同时尝试自动播放并循环多个视频流。这会导致极高的带宽占用和 CPU/GPU 负载,极易造成浏览器卡顿、风扇狂转或标签页崩溃,严重影响用户体验。objectFit从contain修改为cover。预览功能的核心目的是让用户确认视频内容的完整性和剪辑效果,cover模式会强制填满容器并裁剪掉视频边缘内容(如字幕、片头片尾或关键画面),导致用户无法完整预览到视频的实际效果,属于逻辑缺陷。💡 建议(1个可选)
for循环)改为Promise.all并行请求。虽然这能显著减少总等待时间,但在previewCount较大(如 10)时,会瞬间向服务器发起 10 个并发请求。如果服务端未做好相应的并发限制或流控,可能导致请求超时、失败率上升或触发服务端限流。建议评估服务端承受能力,或考虑限制并发数(如使用p-limit库)。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-08-07 16:29:11 | 模型:
🚀 预览环境已部署
CI all green ✅ auto-approve
🗑️ 预览环境已清理
PR #1293 已关闭或合并,对应的预览环境已被清理。