diff --git a/assets/js/main.js b/assets/js/main.js index d07a5dd..6fc6ca7 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -225,9 +225,12 @@ document.addEventListener('DOMContentLoaded', () => { const audio = new Audio(gTtsUrl); audio.onended = () => { if (videoPlayer) videoPlayer.volume = 1.0; }; - audio.onerror = () => { + let fallbackPlayed = false; + const handleFallback = (err) => { + if (fallbackPlayed) return; + fallbackPlayed = true; // Fallback to built-in if external TTS fails - console.warn("External TTS failed, falling back to built-in speech"); + console.warn("External TTS failed, falling back to built-in speech", err); if ('speechSynthesis' in window) { const utterance = new SpeechSynthesisUtterance(text); utterance.lang = locale === 'ar' ? 'ar-SA' : 'en-US'; @@ -249,11 +252,12 @@ document.addEventListener('DOMContentLoaded', () => { if (videoPlayer) videoPlayer.volume = 1.0; } }; + audio.onerror = handleFallback; // Attempt to play external audio const playPromise = audio.play(); if (playPromise !== undefined) { - playPromise.catch(audio.onerror); + playPromise.catch(handleFallback); } } else { if (videoPlayer) videoPlayer.volume = 1.0;