fix: 视频提取完成后立即清除 pending 状态,避免预览重复显示
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user