From 482ea9bc12038c235643e5b598ce6fceef80705b Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sat, 30 Mar 2024 09:19:33 -0600 Subject: [PATCH] Fix preview player not jumping to correct time --- web/src/components/player/PreviewPlayer.tsx | 4 +++- web/src/views/events/EventView.tsx | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/web/src/components/player/PreviewPlayer.tsx b/web/src/components/player/PreviewPlayer.tsx index 4e503ad0d..ef37f1dd4 100644 --- a/web/src/components/player/PreviewPlayer.tsx +++ b/web/src/components/player/PreviewPlayer.tsx @@ -350,7 +350,9 @@ class PreviewVideoController extends PreviewController { } override setNewPreviewStartTime(time: number) { - this.timeToSeek = time; + if (this.preview) { + this.timeToSeek = time - this.preview.start; + } } previewReady() { diff --git a/web/src/views/events/EventView.tsx b/web/src/views/events/EventView.tsx index c965e54b7..a18e11584 100644 --- a/web/src/views/events/EventView.tsx +++ b/web/src/views/events/EventView.tsx @@ -687,6 +687,8 @@ function MotionReview({ [selectedRangeIdx, timeRangeSegments], ); + const [previewStart, setPreviewStart] = useState(startTime); + const [scrubbing, setScrubbing] = useState(false); const [playing, setPlaying] = useState(false); @@ -702,9 +704,7 @@ function MotionReview({ ); if (index != -1) { - Object.values(videoPlayersRef.current).forEach((controller) => { - controller.setNewPreviewStartTime(currentTime); - }); + setPreviewStart(currentTime); setSelectedRangeIdx(index); } return; @@ -826,7 +826,7 @@ function MotionReview({ className={`${detectionType ? `outline outline-3 outline-offset-1 outline-severity_${detectionType}` : "outline-0 shadow-none"} rounded-2xl ${grow}`} camera={camera.name} timeRange={currentTimeRange} - startTime={startTime} + startTime={previewStart} cameraPreviews={relevantPreviews || []} isScrubbing={scrubbing} onControllerReady={(controller) => {