From aa36e63591c7b85a30bf0fae8cffcc42927daadd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=AE=8F=E6=9D=B0?= Date: Wed, 19 Aug 2026 20:33:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=B8=85=E7=90=86=20descriptionCac?= =?UTF-8?q?he=20=E5=85=9C=E5=BA=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除 4 处 descriptionCache 相关代码: - 删除 useRef 声明 - 删除缓存兜底块 - 删除缓存写入 - 删除缓存清理 descriptionCache 不再需要,description 直接由 extractCodecDescription 提供 --- .../src/pages/generate/hooks/useCanvasPlayer.ts | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/apps/web/src/pages/generate/hooks/useCanvasPlayer.ts b/apps/web/src/pages/generate/hooks/useCanvasPlayer.ts index 902f9d5c2..6fba99895 100644 --- a/apps/web/src/pages/generate/hooks/useCanvasPlayer.ts +++ b/apps/web/src/pages/generate/hooks/useCanvasPlayer.ts @@ -222,7 +222,6 @@ export function useCanvasPlayer( const videoDimRef = useRef<{ width: number; height: number }>({ width: 0, height: 0 }) const isDestroyedRef = useRef(false) const lastProgressUpdateRef = useRef(0) - const descriptionCache = useRef>(new Map()) // 计算总时长 const totalDuration = segments.reduce((sum, seg) => sum + (seg.endTime - seg.startTime), 0) @@ -336,15 +335,7 @@ export function useCanvasPlayer( } // 提取编解码器配置数据(HEVC 必需,H.264 也需要) - let description = extractCodecDescription(buffer) - - // 如果当前分片没有 description,尝试从缓存获取 - if (!description) { - for (const cached of descriptionCache.current.values()) { - description = cached - break - } - } + const description = extractCodecDescription(buffer) // ✅ 如果 description 缺失,无法解码 HEVC if (!description) { @@ -357,9 +348,6 @@ export function useCanvasPlayer( return } - // 缓存 description 供后续分片使用 - descriptionCache.current.set(segment.assetId, description) - meta = { assetId: segment.assetId, videoUrl: segment.videoUrl, @@ -713,7 +701,6 @@ export function useCanvasPlayer( frameQueueRef.current.clear() segmentDataRef.current.clear() segmentMetaRef.current = [] - descriptionCache.current.clear() }, []) // ── 预加载下一个片段的数据 ──