diff --git a/ui/src/routes/+layout.svelte b/ui/src/routes/+layout.svelte index 29d5604..481ff93 100644 --- a/ui/src/routes/+layout.svelte +++ b/ui/src/routes/+layout.svelte @@ -17,14 +17,20 @@ }); // When audioUrl changes, load the new source. + // Use a local variable to track which URL is currently loaded so we never + // compare against audioEl.src (browsers normalise it, causing false mismatches). + let loadedUrl = ''; $effect(() => { if (!audioEl) return; const url = audioStore.audioUrl; - if (url && audioEl.src !== url) { + if (url && url !== loadedUrl) { + loadedUrl = url; audioEl.src = url; audioEl.load(); audioEl.playbackRate = audioStore.speed; audioEl.play().catch(() => {}); + } else if (!url) { + loadedUrl = ''; } }); @@ -107,19 +113,19 @@