From 52bf15d82b26b7d4b2f30168201688cc056b1d8f Mon Sep 17 00:00:00 2001 From: Michael SCHAL Date: Sun, 3 May 2026 23:06:32 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20proxy=20par=20d=C3=A9faut,=20supprime=20?= =?UTF-8?q?tentative=20CORS=20directe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/context/AudioContext.tsx | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/frontend/src/context/AudioContext.tsx b/frontend/src/context/AudioContext.tsx index d9822f2..ad14b61 100644 --- a/frontend/src/context/AudioContext.tsx +++ b/frontend/src/context/AudioContext.tsx @@ -48,8 +48,8 @@ export function AudioProvider({ children }: { children: ReactNode }) { const [error, setError] = useState(null); const [userId, setUserId] = useState(null); - // Audio source mode: direct CORS → backend proxy (always CORS) → give up - const [corsMode, setCorsMode] = useState<'cors' | 'proxy' | 'no-cors'>('cors'); + // Audio source mode: proxy (always CORS) → no-cors fallback + const [corsMode, setCorsMode] = useState<'proxy' | 'no-cors'>('proxy'); // Refs for interval-based progress saving const currentTimeRef = useRef(0); @@ -159,7 +159,7 @@ export function AudioProvider({ children }: { children: ReactNode }) { // Actions const playEpisode = (episode: Episode) => { - setCorsMode('cors'); + setCorsMode('proxy'); setError(null); setCurrentEpisode(episode); setIsPlaying(true); @@ -177,7 +177,7 @@ export function AudioProvider({ children }: { children: ReactNode }) { setIsPlaying(false); setCurrentTime(0); setDuration(0); - setCorsMode('cors'); + setCorsMode('proxy'); }; const togglePlay = () => { @@ -211,12 +211,8 @@ export function AudioProvider({ children }: { children: ReactNode }) { }; const handleAudioError = () => { - if (corsMode === 'cors') { - // Direct CORS failed — retry via backend proxy (adds CORS headers, Web Audio works) - setCorsMode('proxy'); - setError(null); - } else if (corsMode === 'proxy') { - // Proxy also failed — last resort: plain audio, no Web Audio analysis + if (corsMode === 'proxy') { + // Proxy failed — last resort: plain audio, no Web Audio analysis setCorsMode('no-cors'); setError(null); } else {