From a0623d4db1ebfd7e0156f54bbf3a9f4cf40442f4 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Mon, 7 Oct 2024 14:39:59 +0200 Subject: [PATCH] make it a render effect --- .../svelte/src/internal/client/dom/elements/bindings/media.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/dom/elements/bindings/media.js b/packages/svelte/src/internal/client/dom/elements/bindings/media.js index d1ddf677ee..444a1b3439 100644 --- a/packages/svelte/src/internal/client/dom/elements/bindings/media.js +++ b/packages/svelte/src/internal/client/dom/elements/bindings/media.js @@ -150,7 +150,9 @@ export function bind_paused(media, get, set = get) { // Listen to the canplay event to get notified of this situation. listen(media, ['play', 'pause', 'canplay'], update, paused == null); - render_effect(() => { + // Needs to be an effect to ensure media element is mounted: else, if paused is `false` (i.e. should play right away) + // a "The play() request was interrupted by a new load request" error would be thrown because the resource isn't loaded yet. + effect(() => { if ((paused = !!get()) !== media.paused) { if (paused) { media.pause();