From 0c1dcf673adfc180ddc825ad5452ae83da34e1a6 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Thu, 22 Feb 2024 16:12:54 -0700 Subject: [PATCH] Cleanup handling --- .../player/PreviewThumbnailPlayer.tsx | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/web/src/components/player/PreviewThumbnailPlayer.tsx b/web/src/components/player/PreviewThumbnailPlayer.tsx index abf4623e3..8cd510a1a 100644 --- a/web/src/components/player/PreviewThumbnailPlayer.tsx +++ b/web/src/components/player/PreviewThumbnailPlayer.tsx @@ -188,6 +188,15 @@ function PreviewContent({ setProgress, setReviewed, }: PreviewContentProps) { + const playerStartTime = useMemo(() => { + if (!relevantPreview) { + return 0; + } + + // start with a bit of padding + return Math.max(0, review.start_time - relevantPreview.start - 8); + }, []); + // manual playback // safari is incapable of playing at a speed > 2x // so manual seeking is required on iOS @@ -198,9 +207,11 @@ function PreviewContent({ return; } + let counter = 0; const intervalId: NodeJS.Timeout = setInterval(() => { if (playerRef.current) { - playerRef.current.currentTime(playerRef.current.currentTime()!! + 1); + playerRef.current.currentTime(playerStartTime + counter); + counter += 1; } }, 125); return () => clearInterval(intervalId); @@ -236,17 +247,11 @@ function PreviewContent({ return; } - // start with a bit of padding - const playerStartTime = Math.max( - 0, - review.start_time - relevantPreview.start - 8 - ); - player.currentTime(playerStartTime); - if (isSafari) { player.pause(); setManualPlayback(true); } else { + player.currentTime(playerStartTime); player.playbackRate(8); }