feat: activation du vrai AudioBridge (sortie du mode placeholder)

- 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
This commit is contained in:
2026-05-26 14:23:31 +02:00
parent 7e5c8744cd
commit cd76b66529
+27 -11
View File
@@ -31,18 +31,35 @@ class AudioBridgeManager extends EventEmitter {
const config = configManager.get(); const config = configManager.get();
console.log('🎵 Démarrage AudioBridge avec configuration:', config.audio); console.log('🎵 Démarrage AudioBridge avec configuration:', config.audio);
// TODO Phase 3: Implémenter le vrai bridge audio // Import dynamique du AudioBridge
// const AudioBridge = await import('./AudioBridge.js'); const { AudioBridge } = await import('./AudioBridge.js');
// this.bridge = new AudioBridge(config.audio);
// await this.bridge.start(); // 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; this.isRunning = true;
console.log('✓ AudioBridge démarré (mode placeholder)'); console.log('✓ AudioBridge démarré avec succès');
this.emit('started'); this.emit('started');
} catch (error) { } catch (error) {
console.error('❌ Erreur démarrage AudioBridge:', 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 { try {
console.log('⏹ Arrêt AudioBridge...'); console.log('⏹ Arrêt AudioBridge...');
// TODO Phase 3: Arrêter le vrai bridge if (this.bridge) {
// if (this.bridge) { await this.bridge.stop();
// await this.bridge.stop(); this.bridge = null;
// this.bridge = null; }
// }
this.isRunning = false; this.isRunning = false;
console.log('✓ AudioBridge arrêté'); console.log('✓ AudioBridge arrêté');