From a8cfe7d8ecfe85f0cfe37f3e2e67683a545e067a Mon Sep 17 00:00:00 2001 From: root Date: Tue, 17 Feb 2026 19:35:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(video):=20=E6=8B=BC=E6=8E=A5=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E5=90=8E=E5=BC=BA=E5=88=B6=E5=88=B7=E6=96=B0=E5=B9=B6?= =?UTF-8?q?=E5=9B=9E=E5=A1=AB=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/static/public/js/video.js | 16 ++++++++++++++-- app/static/public/pages/video.html | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/static/public/js/video.js b/app/static/public/js/video.js index dd6c065..00cd3a5 100644 --- a/app/static/public/js/video.js +++ b/app/static/public/js/video.js @@ -1528,12 +1528,24 @@ const generatedVideoUrl = await waitEditVideoResult(taskId, normalizeAuthHeader(authHeader)); const mergedBlob = await concatVideosLocal(frameInfo.sourceBuffer, generatedVideoUrl); const mergedUrl = URL.createObjectURL(mergedBlob); - const item = getSelectedVideoItem(); + let item = getSelectedVideoItem(); + if (!item && videoStage) { + const items = Array.from(videoStage.querySelectorAll('.video-item')); + item = items.find((node) => String(node.dataset.url || '').trim() === String(selectedVideoUrl || '').trim()) || null; + } + if (!item) { + item = initPreviewSlot() || null; + } if (item) { + if (!selectedVideoItemId) { + selectedVideoItemId = String(item.dataset.index || ''); + } + item.dataset.url = mergedUrl; const state = { previewItem: item }; renderVideoFromUrl(state, mergedUrl); - bindEditVideoSource(mergedUrl); + refreshVideoSelectionUi(); } + bindEditVideoSource(mergedUrl); editingRound += 1; setStatus('connected', `拼接完成(第 ${editingRound} 轮)`); toast('拼接完成,可继续下一轮编辑', 'success'); diff --git a/app/static/public/pages/video.html b/app/static/public/pages/video.html index a0c8b79..0ffed0e 100644 --- a/app/static/public/pages/video.html +++ b/app/static/public/pages/video.html @@ -274,7 +274,7 @@ - +