From 9757f70064bb22a685713478b509768305f30804 Mon Sep 17 00:00:00 2001 From: Yaros Date: Mon, 24 Mar 2025 22:55:46 +0100 Subject: [PATCH] fix(web): not autoplay after moving playhead on paused video (#17038) fix(web): prevent autoplay after moving playhead --- .../components/asset-viewer/video-native-viewer.svelte | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/web/src/lib/components/asset-viewer/video-native-viewer.svelte b/web/src/lib/components/asset-viewer/video-native-viewer.svelte index 46a0301306..e67cd6923c 100644 --- a/web/src/lib/components/asset-viewer/video-native-viewer.svelte +++ b/web/src/lib/components/asset-viewer/video-native-viewer.svelte @@ -38,6 +38,7 @@ let isLoading = $state(true); let assetFileUrl = $state(''); let forceMuted = $state(false); + let isScrubbing = $state(false); onMount(() => { if (videoPlayer) { @@ -55,8 +56,10 @@ const handleCanPlay = async (video: HTMLVideoElement) => { try { - await video.play(); - onVideoStarted(); + if (!video.paused && !isScrubbing) { + await video.play(); + onVideoStarted(); + } } catch (error) { if (error instanceof DOMException && error.name === 'NotAllowedError' && !forceMuted) { await tryForceMutedPlay(video); @@ -119,6 +122,8 @@ $videoViewerMuted = e.currentTarget.muted; } }} + onseeking={() => (isScrubbing = true)} + onseeked={() => (isScrubbing = false)} onclose={() => onClose()} muted={forceMuted || $videoViewerMuted} bind:volume={$videoViewerVolume}