fix: FrontendPreviewPlayer video fallback 路径补充标题叠加层 #1491
Reference in New Issue
Block a user
Delete Branch "fix/title-overlay-video-fallback"
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?
问题
FrontendPreviewPlayer 的
useWebCodecs硬编码为false,实际走 video fallback 路径。但该路径只渲染了<video>元素,没有渲染标题 CSS 叠加层,导致预览画面看不到标题。修复
在 video 元素之后、播放按钮之前加入绝对定位的标题 div,支持全部标题样式属性:
改动文件
apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx— 新增标题 CSS 叠加层验收标准
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[FrontendPreviewPlayer.tsx: 415-421] textShadow 逻辑可读性优化
filter(Boolean)再join(", ")的方式构建textShadow字符串虽然功能正确,但稍显冗长且每次渲染都会重新计算数组。建议提取为常量或使用简单的字符串拼接逻辑,以提高代码可读性和微小的性能优化。[FrontendPreviewPlayer.tsx: 401-405] 硬编码魔法值提取
10%、50%、15%)直接硬编码在 JSX 中。建议将这些数值提取为组件顶部的常量(如TITLE_POSITION_OFFSETS),便于后续统一调整布局和维护。✅ 良好实践
{titleSettings.title}渲染文本,React 默认会进行转义,有效防止 XSS 攻击。pointerEvents: "none",确保标题叠加层不会阻挡用户对下方视频元素的点击交互。titleSettings?.title和默认值(如|| "思源黑体"),有效避免了空指针引用导致的渲染崩溃。wordBreak: "break-word",防止长标题溢出容器破坏布局。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-08-25 02:57:06 | 模型:
🗑️ 预览环境已清理
PR #1491 已关闭或合并,对应的预览环境已被清理。