From fd8ac1da7df24543d175adc0d5e2b5d2cc9455af Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 6 Mar 2025 21:14:00 -0600 Subject: Catch thrown error for autoplay in Safari (#7921) --- .../util/post-embeds/VideoEmbedInner/web-controls/utils.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/view/com/util/post-embeds/VideoEmbedInner/web-controls/utils.tsx') diff --git a/src/view/com/util/post-embeds/VideoEmbedInner/web-controls/utils.tsx b/src/view/com/util/post-embeds/VideoEmbedInner/web-controls/utils.tsx index 60ee33f45..108814ea2 100644 --- a/src/view/com/util/post-embeds/VideoEmbedInner/web-controls/utils.tsx +++ b/src/view/com/util/post-embeds/VideoEmbedInner/web-controls/utils.tsx @@ -68,14 +68,22 @@ export function useVideoElement(ref: React.RefObject) { setError(true) } - const handleCanPlay = () => { + const handleCanPlay = async () => { if (bufferingTimeout) clearTimeout(bufferingTimeout) setBuffering(false) setCanPlay(true) if (!ref.current) return if (playWhenReadyRef.current) { - ref.current.play() + try { + await ref.current.play() + } catch (e: any) { + if ( + !e.message?.includes(`The request is not allowed by the user agent`) + ) { + throw e + } + } playWhenReadyRef.current = false } } -- cgit 1.4.1