From b2c6f5718df4533a2b29e78a05a05d60a49b9297 Mon Sep 17 00:00:00 2001 From: california Date: Thu, 13 Feb 2025 00:13:06 -0800 Subject: [PATCH] fixes video mobile bugs... --- src/components/RouteVideoPlayer.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/components/RouteVideoPlayer.tsx b/src/components/RouteVideoPlayer.tsx index 3b2279ea..c0c987f5 100644 --- a/src/components/RouteVideoPlayer.tsx +++ b/src/components/RouteVideoPlayer.tsx @@ -76,10 +76,22 @@ const RouteVideoPlayer: VoidComponent = (props) => { function setupVideoEventListeners() { const handleTimeUpdate = () => props.onProgress?.(video.currentTime) video.addEventListener('timeupdate', handleTimeUpdate) - onCleanup(() => video.removeEventListener('timeupdate', handleTimeUpdate)) + + video.addEventListener('stalled', () => { + if (isPlaying()) { + void video.play().catch(() => { + }) + } + }) video.addEventListener('loadedmetadata', () => { setDuration(video.duration) + void video.play().catch(() => setIsPlaying(false)) + }) + + onCleanup(() => { + video.removeEventListener('timeupdate', handleTimeUpdate) + video.removeEventListener('stalled', () => {}) }) props.ref?.(video) @@ -103,6 +115,9 @@ const RouteVideoPlayer: VoidComponent = (props) => { class="absolute inset-0 size-full object-cover" autoplay muted + playsinline + controls={false} + disablepictureinpicture onPlay={startProgressTracking} onTimeUpdate={(e) => { updateProgressOnTimeUpdate()