'use client'; import { FC, useEffect, useRef } from 'react'; import Image from 'next/image'; interface Story { accusation: { description: string; alibi: string[]; }; } interface IntroSceneProps { intro: { fr: { title: string; description: string; start: string; }; en: { title: string; description: string; start: string; }; es: { title: string; description: string; start: string; }; }, language: 'fr' | 'en' | 'es'; setNextScene: () => void; story: Story | null; } const IntroScene: FC = ({ intro, language, setNextScene, story, }) => { const audioRef = useRef(null); useEffect(() => { const audio = new Audio(); audio.id = 'introAudio'; document.body.appendChild(audio); audioRef.current = audio; const loadAndPlayAudio = async () => { try { if (language === 'en') { audio.src = '/sounds/intro_en.mp3'; } else if (language === 'fr') { audio.src = '/sounds/intro_fr.mp3'; } else if (language === 'es') { audio.src = '/sounds/intro_es.mp3'; } await audio.load(); await audio.play(); } catch (error) { console.log('Audio playback error:', error); } }; loadAndPlayAudio(); return () => { if (audioRef.current) { audioRef.current.pause(); document.body.removeChild(audioRef.current); audioRef.current = null; } }; }, [language]); const handleContinue = () => { console.log('handleContinue:') if (audioRef.current) { audioRef.current.pause(); document.body.removeChild(audioRef.current); audioRef.current = null; } setNextScene(); }; return (
{/* Image de fond */} Background {/* Overlay noir */}
{/* Contenu */}

{intro[language].description}

); }; export default IntroScene;