fix: 视频提取完成后立即清除 pending 状态,避免预览重复显示

This commit is contained in:
thzxx
2026-06-18 13:16:40 +08:00
parent bec111444e
commit 96bf48aaf5
+9 -5
View File
@@ -287,17 +287,21 @@ async function handleVideoPath(filePath: string): Promise<void> {
return; return;
} }
pendingVideoFrames = result.frames!; const frameCount = result.frames!.length;
pendingVideoMeta = { fileName: name, ...result.videoInfo! }; const duration = result.videoInfo!.duration;
completedVideos.push({ fileName: name, duration: result.videoInfo!.duration, frames: [...result.frames!] });
// 移入 completedVideos,清除 pending 状态(避免预览重复)
completedVideos.push({ fileName: name, duration, frames: [...result.frames!] });
pendingVideoFrames = [];
pendingVideoMeta = null;
// 完成:聊天区系统消息原地更新为完成 // 完成:聊天区系统消息原地更新为完成
const sysMsg = document.querySelector('.sysmsg-video-progress'); const sysMsg = document.querySelector('.sysmsg-video-progress');
if (sysMsg) { if (sysMsg) {
sysMsg.classList.remove('sysmsg-video-progress'); sysMsg.classList.remove('sysmsg-video-progress');
sysMsg.textContent = `${name}: 已提取 ${pendingVideoFrames.length} 帧 (1fps 采样)`; sysMsg.textContent = `${name}: 已提取 ${frameCount} 帧 (1fps 采样)`;
} }
logSuccess('✅ 视频帧提取完成', `${pendingVideoFrames.length} 帧 / ${pendingVideoMeta.duration.toFixed(1)}s (1fps)`); logSuccess('✅ 视频帧提取完成', `${frameCount} 帧 / ${duration.toFixed(1)}s (1fps)`);
renderVideoPreview(); renderVideoPreview();
} catch (err) { } catch (err) {
bridge.video.removeProgressListener(); bridge.video.removeProgressListener();