fix: résolution device IDs et correction sox capture args

Corrections pour le routing audio carte son → LiveKit :

**Fixes audio backend**
- AudioBridgeManager : extraction des device IDs depuis config.audio.device
- AudioBridge : ajout résolution device ID → device name pour CoreAudio/sox
- CoreAudioBackend : correction index args sox capture (args[2] au lieu de args[1])

**Résultat**
-  Sox capture fonctionne : lit depuis "Microphone MacBook Pro"
-  Audio capturé et envoyé vers routing
-  Sox playback se ferme après 0.2s (problème persistant à corriger)

**Autres modifications**
- Logging centralisé (Logger.js)
- IP corrigée : 192.168.0.146
- Suppression système channels[] legacy dans groupes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-05-26 22:01:53 +02:00
parent a5879a2ea9
commit f2e1a50d6d
14 changed files with 352 additions and 180 deletions
+23 -3
View File
@@ -179,7 +179,7 @@ router.get('/groups', (req, res) => {
/**
* POST /admin/groups
* Crée un nouveau groupe
* Body: { name, audioBitrate?, channels }
* Body: { name, audioBitrate? }
* L'ID est généré automatiquement à partir du nom
*/
router.post('/groups', (req, res) => {
@@ -204,7 +204,7 @@ router.post('/groups', (req, res) => {
});
}
// Créer le nouveau groupe (sans channels)
// Créer le nouveau groupe
const newGroup = {
name,
...(audioBitrate && { audioBitrate })
@@ -482,8 +482,28 @@ router.get('/audio/device', (req, res) => {
const config = configManager.get();
const audioDevice = config.audio?.device || {};
// Enrichir avec les infos réelles de la carte si configurée
const devices = CoreAudioBackend.getDevices();
let deviceInfo = { ...audioDevice };
if (audioDevice.inputDeviceId) {
const inputDev = devices.find(d => d.id === audioDevice.inputDeviceId);
if (inputDev) {
deviceInfo.inputChannels = inputDev.maxInputChannels;
deviceInfo.inputDeviceName = inputDev.name;
}
}
if (audioDevice.outputDeviceId) {
const outputDev = devices.find(d => d.id === audioDevice.outputDeviceId);
if (outputDev) {
deviceInfo.outputChannels = outputDev.maxOutputChannels;
deviceInfo.outputDeviceName = outputDev.name;
}
}
res.json({
device: audioDevice
device: deviceInfo
});
} catch (error) {
console.error('Erreur GET /admin/audio/device:', error);