refactor: simplifier AudioBridge, filtrer bridge dans PWA, option aucune sortie

- AudioBridge: retire GroupAudioRouter, LiveKitClient, routing per-group
- AudioBridgeManager: génère tokens uniquement pour server_audio_users
- ServerAudioUser: outputChannel null = pas d'émission outputReady
- PWA useLiveKit: filtre les participants role=bridge de la liste
- Electron UI: page Routing sans matrices, noms canaux + server audio users
- config.yaml: nettoyé (pas de section routing)
This commit is contained in:
2026-07-03 14:55:55 +02:00
parent bf960f49bb
commit 06cb6a7dd1
12 changed files with 397 additions and 731 deletions
+10 -1
View File
@@ -283,8 +283,17 @@ export default function useLiveKit() {
});
});
// Participants distants (utilisateurs WebRTC)
// Participants distants (utilisateurs WebRTC + server audio users)
// Exclure les participants internes de routage (role: 'bridge')
room.remoteParticipants.forEach((participant) => {
let role = null;
try {
const meta = participant.metadata ? JSON.parse(participant.metadata) : {};
role = meta.role || null;
} catch (_) {}
if (role === 'bridge') return;
const audioTracks = participant.audioTracks ? Array.from(participant.audioTracks.values()) : [];
const audioPublication = audioTracks[0];
const isSpeaking = room.activeSpeakers.some(s => s.identity === participant.identity);