From cd76b6652939c99ad8dcdfe88fa907810e0f914b Mon Sep 17 00:00:00 2001 From: Benoit Date: Tue, 26 May 2026 14:23:31 +0200 Subject: [PATCH] feat: activation du vrai AudioBridge (sortie du mode placeholder) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Import dynamique de AudioBridge.js - Création instance avec config complète (routing, groupes, LiveKit) - Démarrage effectif du bridge audio - Gestion erreur pour ne pas bloquer le serveur si pas de carte son - Remplace le mode placeholder par le vrai système audio --- server/bridge/AudioBridgeManager.js | 38 ++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 11 deletions(-) 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é');