diff --git a/server/bridge/AudioBridgeManager.js b/server/bridge/AudioBridgeManager.js index eb792d1..c408bbf 100644 --- a/server/bridge/AudioBridgeManager.js +++ b/server/bridge/AudioBridgeManager.js @@ -31,18 +31,35 @@ class AudioBridgeManager extends EventEmitter { const config = configManager.get(); console.log('đŸŽ” DĂ©marrage AudioBridge avec configuration:', config.audio); - // TODO Phase 3: ImplĂ©menter le vrai bridge audio - // const AudioBridge = await import('./AudioBridge.js'); - // this.bridge = new AudioBridge(config.audio); - // await this.bridge.start(); + // Import dynamique du AudioBridge + const { AudioBridge } = await import('./AudioBridge.js'); + + // CrĂ©er l'instance avec la config + this.bridge = new AudioBridge({ + ...config.audio, + // Options LiveKit + liveKitUrl: config.server?.livekit?.url || 'ws://localhost:7880', + liveKitToken: null, // Le bridge serveur n'a pas besoin de token pour l'instant + roomName: 'main', + // Options de routing + routing: config.audio?.routing || {}, + groups: config.groups || [], + maxInputChannels: 32, + maxOutputChannels: 32 + }); + + // DĂ©marrer le bridge + await this.bridge.start(); this.isRunning = true; - console.log('✓ AudioBridge dĂ©marrĂ© (mode placeholder)'); + console.log('✓ AudioBridge dĂ©marrĂ© avec succĂšs'); this.emit('started'); } catch (error) { console.error('❌ Erreur dĂ©marrage AudioBridge:', error); - throw error; + // Ne pas throw pour Ă©viter de bloquer le serveur si pas de carte son + console.warn('⚠ Le serveur continue sans AudioBridge actif'); + this.isRunning = false; } } @@ -57,11 +74,10 @@ class AudioBridgeManager extends EventEmitter { try { console.log('âč ArrĂȘt AudioBridge...'); - // TODO Phase 3: ArrĂȘter le vrai bridge - // if (this.bridge) { - // await this.bridge.stop(); - // this.bridge = null; - // } + if (this.bridge) { + await this.bridge.stop(); + this.bridge = null; + } this.isRunning = false; console.log('✓ AudioBridge arrĂȘtĂ©');