Cleanup handling

This commit is contained in:
Nicolas Mowen 2024-02-22 16:12:54 -07:00
parent f01d3f03df
commit 0c1dcf673a

View File

@ -188,6 +188,15 @@ function PreviewContent({
setProgress, setProgress,
setReviewed, setReviewed,
}: PreviewContentProps) { }: 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 // manual playback
// safari is incapable of playing at a speed > 2x // safari is incapable of playing at a speed > 2x
// so manual seeking is required on iOS // so manual seeking is required on iOS
@ -198,9 +207,11 @@ function PreviewContent({
return; return;
} }
let counter = 0;
const intervalId: NodeJS.Timeout = setInterval(() => { const intervalId: NodeJS.Timeout = setInterval(() => {
if (playerRef.current) { if (playerRef.current) {
playerRef.current.currentTime(playerRef.current.currentTime()!! + 1); playerRef.current.currentTime(playerStartTime + counter);
counter += 1;
} }
}, 125); }, 125);
return () => clearInterval(intervalId); return () => clearInterval(intervalId);
@ -236,17 +247,11 @@ function PreviewContent({
return; return;
} }
// start with a bit of padding
const playerStartTime = Math.max(
0,
review.start_time - relevantPreview.start - 8
);
player.currentTime(playerStartTime);
if (isSafari) { if (isSafari) {
player.pause(); player.pause();
setManualPlayback(true); setManualPlayback(true);
} else { } else {
player.currentTime(playerStartTime);
player.playbackRate(8); player.playbackRate(8);
} }