feat: support multi-groupes avec sélection dynamique (Phase 2.1)

- Ajout de 3 groupes dans config.yaml : Production, Technique, Sonorisation
- Nouvel endpoint API GET /groups pour lister les groupes disponibles
- Composant GroupSelector.jsx pour changer de groupe pendant la session
- Hook useLiveKit étendu avec fonction switchGroup() pour reconnexion
- Intégration dans App.jsx avec gestion du changement de groupe
- Chaque groupe = 1 room LiveKit distincte
- Qualité audio configurable par groupe (96-128 kbps)
This commit is contained in:
2026-05-23 09:32:51 +02:00
parent c863f045ae
commit 3181c62e57
7 changed files with 338 additions and 1 deletions
+21
View File
@@ -151,6 +151,26 @@ export default function useLiveKit() {
setParticipants([]);
}, []);
/**
* Changer de groupe (reconnexion à une nouvelle room)
*/
const switchGroup = useCallback(async (url, token) => {
console.log('🔄 Changement de groupe...');
// Déconnexion propre
cleanup();
if (roomRef.current) {
roomRef.current.disconnect();
roomRef.current = null;
}
setIsConnected(false);
setParticipants([]);
// Reconnexion avec nouveau token
await connect(url, token);
}, [connect]);
/**
* Débloque l'audio sur mobile (iOS/Android)
* Doit être appelé dans un gestionnaire d'événement utilisateur
@@ -390,6 +410,7 @@ export default function useLiveKit() {
audioLevel,
connect,
disconnect,
switchGroup,
startTalking,
stopTalking
};