Audio Fallback

Utiliza la API de audio fallback para priorizar dinámicamente el audio en respuesta a la calidad de la red.

El audio fallback mantiene sus llamadas en marcha para todos los participantes, independientemente de los problemas de conexión o de las malas condiciones de la red, desactivando temporalmente el vídeo para el participante afectado. La función de audio fallback reacciona a las condiciones de la red en tiempo real, garantizando que los participantes no pierdan la conexión cuando la cobertura sea deficiente. Cuando las condiciones mejoran, se restablece el flujo de vídeo gracias a nuestra función de recuperación de vídeo.

Las funciones de audio fallback del editor y del abonado se combinan para ofrecer una calidad de llamada óptima. Un solo abonado puede pasar a sólo audio (si sólo las condiciones del abonado lo justifican) o un editor puede pasar a sólo audio si las condiciones de la red son deficientes.

Cuando las funciones de audio fallback del editor y del suscriptor están activadas, el SDK envía eventos para indicar cambios en las condiciones de calidad. Puede utilizar estos eventos para activar notificaciones en el cliente, o el SDK puede mostrar las notificaciones de interfaz de usuario predeterminadas.

Repetición de audio del abonado

La función de audio fallback del abonado mejora la calidad de la llamada desactivando automáticamente los flujos de vídeo entrantes, lo que da lugar a un modo de sólo audio en respuesta al deterioro de las condiciones de la red en el lado del abonado. Otros clientes continuarán recibiendo video independientemente de las condiciones de la red del suscriptor. Esta función se maneja a través del enrutador de medios de video de Vonage y sólo está disponible en sesiones enrutadas. Consulta la documentos de creación de sesiones para comprender la distinción entre sesiones enrutadas y retransmitidas.

Retorno de audio del editor

La función de audio fallback del editor mejora la calidad de la llamada haciendo que un editor cambie a modo sólo audio cuando las condiciones de red del cliente de publicación no soportan vídeo. El editor reanudará el vídeo cuando mejoren las condiciones de la red.

La función de audio fallback del editor es compatible tanto en las sesiones retransmitidas como en las enrutadas (véase El enrutador de medios de video de Vonage y los modos de medios).

Las funciones de audio fallback del editor incluyen mejoras para supervisar el ancho de banda y la congestión de un flujo publicado. El editor dará prioridad a la comunicación de audio y recurrirá al audio cuando la congestión del ancho de banda no permita la comunicación de vídeo.

Con la función de retorno de audio del editor, el cliente de publicación recibe comentarios de calidad (sobre pérdida de paquetes, ancho de banda y congestión) del suscriptor (en una sesión retransmitida) o del enrutador de medios de video de Vonage (en una sesión enrutada).

Interpretación de los eventos de audio fallback del editor y del abonado para la degradación de la red

Los eventos de audio fallback del editor y del suscriptor no indican directamente qué punto final está experimentando una degradación de la red. En cambio, reflejan dos perspectivas diferentes sobre la calidad de la red: la visión del editor de sus propias estadísticas y la visión agregada del enrutador de medios de video de Vonage.

  • En las sesiones retransmitidas, sólo se admite el audio fallback del editor. Aunque los eventos de fallback se originan en el editor, esto no significa necesariamente que el editor esté experimentando problemas de red. Las métricas de congestión se calculan de extremo a extremo y en ellas influyen tanto el editor como el suscriptor.

  • En las sesiones enrutadas, se admite el fallback tanto del editor como del suscriptor. Debido a que el Vonage Video Media Router puede realizar diferentes transiciones de conexión de pares u operar en configuraciones híbridas, puede ser difícil determinar la fuente exacta de la degradación a partir de los eventos de fallback solamente. Como regla general, asume que la degradación es del lado del suscriptor. Si el audio fallback del editor está habilitado y el cliente recibe un evento fallback inmediatamente seguido de un stream evento actualizado con el canal de vídeo desactivado, el editor también puede verse afectado, o exclusivamente. Sin embargo, las métricas comunicadas por el abonado pueden influir en la desactivación del editor.

Utilizar el audio fallback

Los SDK de cliente incluyen eventos para el audio fallback del editor y del suscriptor. Estos eventos indican cuándo el vídeo del editor o del suscriptor está activado o desactivado, y cuándo hay un aviso de que el vídeo está desactivado, debido al fallback de audio (y a la recuperación de vídeo).

Puede activar y desactivar el audio fallback al publicar un stream.

Use the audio fallback API to dynamically prioritize audio in response to network quality.

Note: The audioFallbackEnabled prop of the OTPublisher component will be deprecated. Please use the audioFallback.subscriber setting instead.

Enabling and disabling audio-only fallback

Set the audioFallback property of the properties prop you pass into the OTPublisher component:

// Enable subscriber audio fallback (the default)
// and publisher audio fallback:
<OTPublisher
  properties={{
    audioFallback={
      publisher: true,
    },
  }}
/>
});

// Enable publisher audio fallback and disable subscriber audio fallback:
<OTPublisher
  properties={{
    audioFallback: {
      publisher: true,
      subscriber: false,
    },
  }}
/>

// Enable subscriber audio fallback and disable publisher audio fallback:
<OTPublisher
  properties={{
    audioFallback: {
      publisher: false,
      subscriber: true,
    },
  }}
/>

// Disable both publisher audio fallback (the default)
// and subscriber audio fallback:
<OTPublisher
  properties={{
    audioFallback: {
      subscriber: false,
    },
  }}
/>

The audioFallback object includes two Boolean properties:

  • publisher — Whether to enable (true) or disable (false) publisher audio fallback. With publisher audio fallback enabled, when the stream's quality has degraded significantly (for example, because of network conditions), the publisher disables video in order to preserve audio quality. The default is false (publisher audio fallback is disabled).
  • subscriber — Whether to enable (true) or disable (false) subscriber audio fallback. This setting only applies in routed sessions (sessions that use the Vonage Video Media Router). Subscriber audio fallback is not supported in relayed sessions. With subscriber audio fallback enabled, when the Vonage Video Media Router determines that a stream's quality has degraded significantly for a specific subscriber, it disables the video in that subscriber in order to preserve audio quality. The default is true (subscriber audio fallback is enabled). This setting replaces the audioFallbackEnabled property, which will be deprecated.

Audio fallback events

When publisher audio fallback is enabled, callback methods of the OTPublisher component are invoked in response to changing quality conditions:

  • videoDisableWarning() — Called when the Publisher determines that the stream quality has degraded and the video will be disabled if the quality degrades more.
  • videoDisableWarningLifted() — Called when the Publisher determines that the stream quality has improved to the point at which the video being disabled is not an immediate risk.
  • videoDisabled() — Called when the Publisher determines that the stream quality has degraded and the outgoing video transport has been disabled. Note: while the video is disabled, the Publisher still displays the publisher video (such as the camera image) in the publishing client's UI.
  • videoEnabled() — Called with the reason property set to 'quality' when the Publisher determines that the stream quality has improved and outgoing video transport has been re-enabled.

For example the following code adds event listeners for audio fallback-related events (so that you can provide user interface notifications):

<OTPublisher
  properties={{
    audioFallback: {
      publisher: true,
    }
  }}

  eventHandlers={{
    videoDisableWarning: () => {
      // Add UI notification
    },
    videoDisableWarningLifted: () => {
      // Adjust UI notification
    },
    videoDisabled: () => {
      // Add UI notification
    },
    videoEnabled: () => {
      // Remove UI notification
    },
  }}
/>

From the subscriber’s perspective, the following events indicate that audio fallback has occurred. Although these events are tied to the subscriber, they can occur both due to subscriber audio fallback and as a consequence of publisher audio fallback. In other words, the difference between publisher and subscriber audio fallback is that, in the publisher case, the publishing client may trigger the audio fallback based on its own stream degradation, which is why additional publisher-side events are dispatched. For subscriber audio fallback, the Vonage Video Media Router assesses network degradation affecting the subscriber. In both cases, upon publisher or subscriber audio fallback, subscriber events are always dispatched to indicate that audio fallback has occurred for the receiver.

The OTSubscriber component includes callback methods that are invoked based on events related to the video being enabled or disabled for the subscriber's stream:

videoEnabled() — Called when the video has been enabled after it was previously disabled. videoDisabled() — Called when the video has been disabled. The reason property of the event object indicates why the video was disabled. (This event object is an VideoEnabledChangedEvent object.) videoDisableWarning() — Called when it is determined that the stream quality has degraded and the video will be disabled if the quality degrades more. If the quality degrades further, the Subscriber disables the video and calls the videoDisabled() callback. This event may also be dispatched when using the publisher audio fallback feature if the publisher's stream quality if degraded. videoDisableWarningLifted() — Called when video has been enabled after it was previously disabled. The OTSubscriber videoDisableWarning() and videoDisableWarningLifted() callback methods are only invoked in sessions that use the Media Router (sessions with the media mode set to routed).

For example the following code adds event listeners for audio fallback-related events (so that you can provide user interface notifications):

<OTSubscriber
  eventHandlers={{
    videoDisableWarning: () => {
      // Add UI notification
    },
    videoDisableWarningLifted: () => {
      // Adjust UI notification
    },
    videoDisabled: () => {
      // Add UI notification
    },
    videoEnabled: () => {
      // Remove UI notification
    },
  }}
/>