diff --git a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx index 74dcec059..33c2f72e7 100644 --- a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx +++ b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx @@ -277,20 +277,29 @@ const FrontendPreviewPlayer: React.FC = ({ if (!ready || !assets.length) { return (
- -

准备预览素材...

-

加载素材后即可预览播放

+ +

+ 准备预览素材... +

+

+ 加载素材后即可预览播放 +

) } @@ -300,31 +309,48 @@ const FrontendPreviewPlayer: React.FC = ({ const showDecodeError = forceVideoFallback && canvasState.hasDecodeError return (
{isBuffering ? ( <> - -

加载中...

+ +

加载中...

) : showDecodeError ? ( <> - -

+ +

视频解码失败

{canvasState.errorMessage || "当前浏览器不支持该视频编码格式,请刷新重试"}

@@ -332,10 +358,14 @@ const FrontendPreviewPlayer: React.FC = ({ ) : ( <> -

暂无可播放素材

-

请先在左侧选择素材

+

+ 暂无可播放素材 +

+

+ 请先在左侧选择素材 +

)}
@@ -347,11 +377,13 @@ const FrontendPreviewPlayer: React.FC = ({ style={{ position: "relative", width: "100%", - height: "100%", - minHeight: 400, - background: "#000", - borderRadius: 8, + maxWidth: 360, + aspectRatio: "9 / 16", + background: "#0a0a0a", + borderRadius: 28, overflow: "hidden", + boxShadow: + "0 4px 6px -1px rgba(0,0,0,0.3), 0 20px 50px -12px rgba(0,0,0,0.5), inset 0 0 0 1px rgba(255,255,255,0.06)", }} > {/* ── Canvas 渲染层(WebCodecs 路径) ── */} @@ -447,54 +479,69 @@ const FrontendPreviewPlayer: React.FC = ({ )} - {/* 播放按钮 */} + {/* 中央播放按钮 */} {!isPlaying && ( )} - {/* 片段指示器 */} + {/* 片段指示器 — 右上角胶囊 */}
- {`片段 ${videoCurrentSegIdx + 1}/${segments.length}`} + {`${videoCurrentSegIdx + 1} / ${segments.length}`}
- {/* 控制条 */} + {/* 控制条 — 手机风格毛玻璃 */}
= ({ right: 0, display: "flex", alignItems: "center", - gap: 8, - padding: "8px 12px", - background: "linear-gradient(transparent, rgba(0,0,0,0.6))", + gap: 10, + padding: "12px 16px 16px", + background: "linear-gradient(transparent, rgba(0,0,0,0.7))", + backdropFilter: "blur(4px)", + WebkitBackdropFilter: "blur(4px)", zIndex: 10, }} >