diff --git a/web/src/components/player/DynamicVideoPlayer.tsx b/web/src/components/player/DynamicVideoPlayer.tsx index 417ae784c..e090c208c 100644 --- a/web/src/components/player/DynamicVideoPlayer.tsx +++ b/web/src/components/player/DynamicVideoPlayer.tsx @@ -471,25 +471,25 @@ export class DynamicVideoController { } onPlayerTimeUpdate(listener: ((timestamp: number) => void) | undefined) { + if (this.playerProgressListener) { + this.playerRef.off("timeupdate", this.playerProgressListener); + } + if (listener) { this.playerProgressListener = () => listener(this.getProgress(this.playerRef.currentTime() || 0)); this.playerRef.on("timeupdate", this.playerProgressListener); - } else { - if (this.playerProgressListener) { - this.playerRef.off("timeupdate", this.playerProgressListener); - } } } - onClipChangedEvent(listener: (dir: "forward") => void) { + onClipChangedEvent(listener: ((dir: "forward") => void) | undefined) { + if (this.playerEndedListener) { + this.playerRef.off("ended", this.playerEndedListener); + } + if (listener) { this.playerEndedListener = () => listener("forward"); this.playerRef.on("ended", this.playerEndedListener); - } else { - if (this.playerEndedListener) { - this.playerRef.off("ended", this.playerEndedListener); - } } } diff --git a/web/src/views/events/RecordingView.tsx b/web/src/views/events/RecordingView.tsx index ca7ef92e5..3eb7f776c 100644 --- a/web/src/views/events/RecordingView.tsx +++ b/web/src/views/events/RecordingView.tsx @@ -117,6 +117,7 @@ export function DesktopRecordingView({ const lastController = videoPlayersRef.current[mainCamera]; const newController = videoPlayersRef.current[newCam]; lastController.onPlayerTimeUpdate(undefined); + lastController.onClipChangedEvent(undefined); lastController.scrubToTimestamp(currentTime); newController.onCanPlay(() => { newController.seekToTimestamp(currentTime, true);