From 019ecbec7b8173edfd47071eed71301412e2313a Mon Sep 17 00:00:00 2001 From: truewhile <62226914+truewhile@users.noreply.github.com> Date: Tue, 25 Aug 2026 19:18:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化 --- web/src/components/DanmakuStage.tsx | 3 +++ web/src/pages/PlayerPage.tsx | 11 +++++++++++ web/src/pages/PlayerVideoStage.tsx | 1 + 3 files changed, 15 insertions(+) diff --git a/web/src/components/DanmakuStage.tsx b/web/src/components/DanmakuStage.tsx index 3b8d197..71d6048 100644 --- a/web/src/components/DanmakuStage.tsx +++ b/web/src/components/DanmakuStage.tsx @@ -128,6 +128,9 @@ export function DanmakuStage({ const loadDanmaku = async () => { let loadedInfo: DanmakuLoadedInfo | null = null + comments = [] + nextIndex = 0 + manager.clear() try { const res = await danmakuAPI.fetch(media.id, { kw: search ?? undefined, diff --git a/web/src/pages/PlayerPage.tsx b/web/src/pages/PlayerPage.tsx index b6a6d53..566c572 100644 --- a/web/src/pages/PlayerPage.tsx +++ b/web/src/pages/PlayerPage.tsx @@ -168,6 +168,17 @@ export function PlayerPage() { setDanmakuInfo(null) }, []) + // 切换视频时重置媒体与弹幕状态,确保新视频自动重新识别并加载弹幕 + useEffect(() => { + setMedia(null) + setDanmakuEpisodeId(null) + setDanmakuCandidates([]) + setDanmakuSearch(null) + setDanmakuSelectedSource('') + setDanmakuInfo(null) + setDanmakuSearching(true) + }, [id]) + // Load metadata and pick a default mode. useEffect(() => { if (!id) return diff --git a/web/src/pages/PlayerVideoStage.tsx b/web/src/pages/PlayerVideoStage.tsx index 9f43026..2df781b 100644 --- a/web/src/pages/PlayerVideoStage.tsx +++ b/web/src/pages/PlayerVideoStage.tsx @@ -249,6 +249,7 @@ export function PlayerVideoStage({ ))}