Audio

Este documento describe la arquitectura de la función de audio. Basado en el patrón del observador, garantiza flexibilidad para agregar o eliminar dinámicamente conexiones de audio entre participantes reales y ficticios, al tiempo que mantiene un manejo claro para los escenarios de moderación.

Participantes reales

«Image: Vista simple de audio»

Cada participante real tiene:

  • Un circular buffer (búfer de anillo) para almacenar el audio entrante.

  • Una list of incoming bindings, que representa a los participantes cuyo audio perciben.

El audio saliente de un participante es la suma de los flujos de audio de sus enlaces entrantes.

Por ejemplo, si los enlaces entrantes de un usuario incluyen “Participante1” y “Participante2”, el audio que percibe es la suma de las transmisiones de audio de esos dos participantes.

Participantes ficticios

«Image: Vista simple de audio con especiales»

Se trata de entidades especializadas que pueden interactuar con la convocatoria sin representar a personas reales:

  • CallRecorder: Graba el audio de la llamada en un archivo.

  • AudioInput: Reproduce audio de un archivo o comparte audio de una fuente externa (por ejemplo, durante el uso compartido de la pantalla).

Interconexión global

«Image: Vista compleja de audio»

Todos los participantes (reales y ficticios) están interconectados, lo que permite la transmisión y recepción de audio en función de sus configuraciones vinculantes.

Moderación: Silenciar a un participante

«Image:Vista compleja de audio Participante2 silenciado»

Cuando se emite una acción de moderación para silenciar a un participante:

  1. Se desvincula a ese participante de todos los demás (ver enlaces rojos).

  2. Ya no se transmite ni es recibido por nadie el audio del participante silenciado.