fix: logs debug AudioBridge + install pulseaudio-utils
- Ajout logs FLUX 2 (réception audio LiveKit → carte son) - Ajout logs GroupRouter pour debug routing - install/linux.sh: ajout pulseaudio-utils (requis pour pactl)
This commit is contained in:
+2
-1
@@ -71,7 +71,8 @@ install_system_deps() {
|
||||
# Outils PipeWire
|
||||
sudo apt install -y \
|
||||
pipewire-bin \
|
||||
libspa-0.2-jack
|
||||
libspa-0.2-jack \
|
||||
pulseaudio-utils
|
||||
|
||||
# Démarrage automatique
|
||||
systemctl --user enable --now pipewire pipewire-pulse wireplumber
|
||||
|
||||
@@ -352,10 +352,14 @@ export class AudioBridge extends EventEmitter {
|
||||
|
||||
// Réception audio depuis les clients LiveKit
|
||||
this.liveKitClient.on('audioData', ({ participantName, pcmData, sampleRate, channels }) => {
|
||||
console.log(`[AudioBridge FLUX 2] Audio reçu de ${participantName}: ${pcmData.length} bytes (${sampleRate}Hz, ${channels}ch)`);
|
||||
|
||||
// Pour l'instant, on route vers le groupe principal
|
||||
// TODO: Mapper les participants aux groupes selon la configuration
|
||||
const groupName = 'Equipe'; // Groupe par défaut
|
||||
this.emit('groupAudioIn', { groupName, pcmBuffer: pcmData });
|
||||
|
||||
console.log(`[AudioBridge FLUX 2] Événement groupAudioIn émis pour groupe "${groupName}"`);
|
||||
});
|
||||
|
||||
await this.liveKitClient.connect();
|
||||
@@ -449,19 +453,27 @@ export class AudioBridge extends EventEmitter {
|
||||
// Écouter l'audio entrant de LiveKit (sera connecté par LiveKitServerBridge)
|
||||
this.on('groupAudioIn', ({ groupName, pcmBuffer }) => {
|
||||
try {
|
||||
console.log(`[AudioBridge FLUX 2] Handler groupAudioIn: groupe="${groupName}", buffer=${pcmBuffer.length} bytes`);
|
||||
|
||||
// Stocker le buffer du groupe pour le routing
|
||||
const float32Data = this._bufferToFloat32(pcmBuffer);
|
||||
this.groupBuffersFromLiveKit.set(groupName, float32Data);
|
||||
|
||||
console.log(`[AudioBridge FLUX 2] Buffer Float32 créé: ${float32Data.length} samples`);
|
||||
|
||||
// ÉTAPE 3 : Groupes → Outputs physiques (via GroupAudioRouter)
|
||||
const outputBuffers = this.groupAudioRouter.processGroupsToOutputs(
|
||||
this.groupBuffersFromLiveKit
|
||||
);
|
||||
|
||||
console.log(`[AudioBridge FLUX 2] GroupRouter processGroupsToOutputs: ${this.groupBuffersFromLiveKit.size} groupes → ${outputBuffers.size} outputs`);
|
||||
|
||||
// ÉTAPE 4 : Envoyer chaque output à la carte son
|
||||
outputBuffers.forEach((outputBuffer, channelId) => {
|
||||
const pcmBuffer = this._float32ToBuffer(outputBuffer);
|
||||
|
||||
console.log(`[AudioBridge FLUX 2] → Output ${channelId}: ${pcmBuffer.length} bytes vers carte son`);
|
||||
|
||||
// Envoyer à la carte son
|
||||
this.audioBackend.queueAudio(pcmBuffer);
|
||||
});
|
||||
|
||||
@@ -270,11 +270,19 @@ export class GroupAudioRouter extends EventEmitter {
|
||||
// Réinitialise les buffers de sortie
|
||||
this.outputBuffers.clear();
|
||||
|
||||
logger.debug(`[GroupRouter] processGroupsToOutputs: ${groupBuffersData.size} groupes en entrée`);
|
||||
logger.debug(`[GroupRouter] Routes disponibles: ${JSON.stringify([...this.groupToOutputRoutes.keys()])}`);
|
||||
|
||||
// Pour chaque groupe
|
||||
groupBuffersData.forEach((pcmData, groupName) => {
|
||||
const routes = this.groupToOutputRoutes.get(groupName);
|
||||
|
||||
if (!routes || routes.length === 0) return;
|
||||
logger.debug(`[GroupRouter] Groupe "${groupName}": ${routes ? routes.length : 0} routes trouvées`);
|
||||
|
||||
if (!routes || routes.length === 0) {
|
||||
logger.warn(`[GroupRouter] Aucune route de sortie configurée pour groupe "${groupName}" - audio ignoré`);
|
||||
return;
|
||||
}
|
||||
|
||||
// Applique chaque route vers les sorties
|
||||
routes.forEach(route => {
|
||||
|
||||
Reference in New Issue
Block a user