diff --git a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx index c2c3f7adb..067a846ed 100644 --- a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx +++ b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx @@ -422,6 +422,10 @@ const FrontendPreviewPlayer: React.FC = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [segmentSyncKey, isPlaying]) + // ── 进度条拖拽状态(提前声明,供 tail useEffect 使用,避免 TDZ/no-use-before-define) ── + const [isDragging, setIsDragging] = useState(false) + const progressRef = useRef(null) + // P0 fix:视频比配音短时的「末帧冻结+音频续播」模式。 // 视频调度器播完最后一段会自动 pause + setIsPlaying(false),此时若配音仍在播, // 用虚拟时钟继续推进 currentTime 直到配音时长,期间保持音频播放、视频停在末帧。 @@ -549,9 +553,6 @@ const FrontendPreviewPlayer: React.FC = ({ onPlayTokenChange, ]) - // ── 进度条拖拽 ── - const [isDragging, setIsDragging] = useState(false) - const progressRef = useRef(null) const handleProgressClick = useCallback( (e: React.MouseEvent) => {