From e2e7adc8af5b41d71e499a411b7cb19dc52b25db Mon Sep 17 00:00:00 2001 From: KansaiGaijin <83641841+KansaiGaijin@users.noreply.github.com> Date: Thu, 30 Jul 2026 16:49:33 +1200 Subject: [PATCH] fix: register audio event handlers before setting src to avoid onloadedmetadata race --- frontend/src/pages/Speakers.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/pages/Speakers.tsx b/frontend/src/pages/Speakers.tsx index 5ded1e8..b9b316e 100644 --- a/frontend/src/pages/Speakers.tsx +++ b/frontend/src/pages/Speakers.tsx @@ -74,12 +74,11 @@ export default function Speakers() { return; } - audio.src = blobUrl; - audio.load(); - await new Promise((resolve, reject) => { audio.onloadedmetadata = () => resolve(); audio.onerror = () => reject(new Error("Audio decode failed")); + audio.src = blobUrl; + audio.load(); }); if (!cancelled) setAudioLoading(false); @@ -181,6 +180,7 @@ export default function Speakers() { onTimeUpdate={(e) => setCurrentTime(e.currentTarget.currentTime)} onLoadedMetadata={(e) => setDuration(e.currentTarget.duration)} controls + preload="auto" className="w-full mb-3" />