Repli audio

Utilisez l'API audio fallback pour donner dynamiquement la priorité à l'audio en fonction de la qualité du réseau.

La fonction de repli audio permet à tous les participants de continuer à participer aux appels, quels que soient les problèmes de connexion ou les mauvaises conditions du réseau, en désactivant temporairement la vidéo pour le participant concerné. La fonction de repli audio réagit aux conditions du réseau en temps réel, ce qui garantit que les participants ne seront pas interrompus en cas de mauvaise couverture. Lorsque les conditions s'améliorent, le flux vidéo est rétabli grâce à notre fonction de récupération vidéo.

Les fonctions de repli audio de l'éditeur et de l'abonné se combinent pour offrir une qualité d'appel optimale. Un abonné peut revenir à l'audio seul (si les conditions de l'abonné le justifient) ou un éditeur peut revenir à l'audio seul en cas de mauvaises conditions de réseau.

Lorsque les fonctions de repli audio de l'éditeur et de l'abonné sont activées, le SDK envoie des événements pour indiquer les changements de qualité. Vous pouvez utiliser ces événements pour déclencher des notifications dans le client, ou le SDK peut afficher les notifications de l'interface utilisateur par défaut.

Repli audio de l'abonné

La fonction de repli audio de l'abonné améliore la qualité de l'appel en désactivant automatiquement les flux vidéo entrants, ce qui entraîne un mode audio uniquement en cas de détérioration des conditions du réseau du côté de l'abonné. Les autres clients continueront à recevoir la vidéo, quelles que soient les conditions du réseau de l'abonné. Cette fonction est gérée par le Video Media Router de Vonage et n'est disponible que dans les sessions routées. Voir la page documents sur la création de sessions pour comprendre la distinction entre les sessions routées et relayées.

Repli audio de l'éditeur

La fonction de repli audio de l'éditeur améliore la qualité des appels en permettant à l'éditeur de passer en mode audio uniquement lorsque les conditions du réseau du client de publication ne permettent pas la prise en charge de la vidéo. L'éditeur reprend la vidéo lorsque les conditions du réseau s'améliorent.

La fonction de repli audio de l'éditeur est prise en charge à la fois dans les sessions relayées et routées (voir Le routeur vidéo multimédia de Vonage et les modes médias).

Les fonctions de repli audio de l'éditeur comprennent des améliorations permettant de surveiller la bande passante et l'encombrement d'un flux publié. L'éditeur donnera la priorité à la communication audio et se rabattra sur l'audio lorsque l'encombrement de la bande passante ne permet pas de prendre en charge les communications vidéo.

Avec la fonction de repli audio de l'éditeur, le client éditeur reçoit un retour d'information sur la qualité (sur la perte de paquets, la bande passante et la congestion) de l'abonné (dans une session relayée) ou du routeur vidéo de Vonage (dans une session routée).

Interprétation des événements de repli audio de l'éditeur et de l'abonné en cas de dégradation du réseau

Les événements de repli audio de l'éditeur et de l'abonné n'indiquent pas directement quel point d'extrémité subit une dégradation du réseau. Ils reflètent plutôt deux perspectives différentes sur la qualité du réseau : la vision de l'éditeur sur ses propres statistiques et la vision agrégée du routeur vidéo de Vonage.

  • Dans les sessions relayées, seul le repli audio de l'éditeur est pris en charge. Bien que les événements de repli proviennent de l'éditeur, cela ne signifie pas nécessairement que l'éditeur rencontre des problèmes de réseau. Les mesures de congestion sont calculées de bout en bout et sont influencées à la fois par l'éditeur et l'abonné.

  • Dans les sessions routées, le repli de l'éditeur et de l'abonné est pris en charge. Étant donné que le routeur vidéo de Vonage peut effectuer différentes transitions de connexion entre pairs ou fonctionner dans des configurations hybrides, il peut être difficile de déterminer la source exacte de la dégradation à partir des seuls événements de repli. En règle générale, il faut supposer que la dégradation est du côté de l'abonné. Si le repli audio de l'éditeur est activé et que le client reçoit un événement de repli immédiatement suivi d'un signal stream updated event lorsque le canal vidéo est désactivé, l'éditeur peut également - ou exclusivement - être affecté. Cependant, le repli de l'éditeur peut encore être influencé par les mesures rapportées par l'abonné.

Utilisation du repli audio

Les SDK clients incluent des événements pour le repli audio de l'éditeur et de l'abonné. Ces événements indiquent quand la vidéo de l'éditeur ou de l'abonné est activée ou désactivée, et quand il y a un avertissement de désactivation de la vidéo, en raison du repli audio (et de la récupération de la vidéo).

Vous pouvez activer et désactiver le repli audio lorsque vous publiez un flux.

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
    },
  }}
/>