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

Remarque : Les audioFallbackEnabled des options transmises à la fonction OT.initPublisher() sera obsolète. Veuillez utiliser la méthode audioFallback.subscriber de l'objet options.

Enabling and disabling audio-only fallback

Lors de l'initialisation de l'objet Publisher, définir le paramètre audioFallback de l'option que vous passez dans la fonction OT.initPublisher() méthode :

// Enable publisher audio fallback
const publisher = OT.initPublisher('target', {
  audioFallback: {
    publisher: true,
  }
});

// Enable publisher audio fallback and disable subscriber audio fallback
const publisher = OT.initPublisher('target', {
  audioFallback: {
    publisher: true,
    subscriber: false,
  }
});

// Enable subscriber audio fallback and disable publisher audio fallback
const publisher = OT.initPublisher('target', {
  audioFallback: {
    publisher: false,
    subscriber: true,
  }
});

Les audioFallback des options que vous passez dans la fonction OT.initPublisher() comprend deux propriétés booléennes :

  • publisher - Activer ou non (true) ou désactiver (false) de l'éditeur. La valeur par défaut est false (le repli audio de l'éditeur est désactivé).

  • subscriber - Activer ou non (true) ou désactiver (false) de l'abonné. Ce paramètre ne s'applique qu'aux sessions acheminées (sessions qui utilisent la fonction Routeur vidéo multimédia de Vonage). Le repli audio de l'abonné n'est pas pris en charge dans les sessions relayées. La valeur par défaut est true (le repli audio de l'abonné est activé). Ce paramètre remplace le paramètre audioFallbackEnabled qui sera dépréciée.

Audio fallback events and UI indications

Lorsque le repli audio de l'éditeur est activé, l'objet éditeur envoie ces événements en réponse à des conditions de qualité changeantes :

  • videoDisableWarning - Envoyé lorsque l'éditeur détermine que la qualité du flux s'est dégradée et que la vidéo sera désactivée si la qualité se dégrade davantage.

  • videoDisableWarningLifted - Envoyé lorsque l'éditeur détermine que la qualité du flux s'est améliorée au point que la vidéo désactivée ne représente plus un risque immédiat.

  • videoDisabled - Envoyé lorsque l'éditeur détermine que la qualité du flux s'est dégradée et que le transport vidéo sortant a été désactivé. Remarque : lorsque la vidéo est désactivée, l'éditeur continue d'afficher la vidéo de l'éditeur (telle que l'image de la caméra) dans l'interface utilisateur du client de publication.

  • videoEnabled - Envoyé avec la raison : "qualité" lorsque l'éditeur détermine que la qualité du flux s'est améliorée et que le transport vidéo sortant a été réactivé.

Par défaut, l'éditeur affiche des icônes lorsque l'icône videoDisableWarning et videoDisabled se produisent.

Les style de la propriété options paramètre pour OT.initPublisher() comprend désormais un videoDisabledDisplayMode propriété. Vous pouvez définir la propriété videoDisabledDisplayMode à l'une des valeurs suivantes contrôle l'affichage des éléments de l'interface utilisateur par défaut sont affichés :

  • auto (par défaut) - Les icônes s'affichent automatiquement lorsque la vidéo est désactivée ou risque de l'être en raison de la mauvaise qualité du flux.

  • off - Les icônes ne sont pas affichées. Vous pouvez afficher vos propres notifications d'interface utilisateur en fonction des événements décrits ci-dessus.

  • on - Les icônes s'affichent automatiquement lorsque la vidéo est désactivée ou risque de l'être en raison de la mauvaise qualité du flux.

Par exemple, le code suivant désactive les éléments de l'interface utilisateur désactivant la vidéo par défaut et gère les événements associés (afin que vous puissiez fournir vos propres notifications d'interface utilisateur) :

// Enabled
const publisher = OT.initPublisher('target', {
  audioFallback: {
    publisher: true,
  },
  style: {
    videoDisabledDisplayMode: 'off',
  }
});

publisher.on({
  videoDisableWarning: () => {
    // Custom action — for example, add custom UI notification
  },
  videoDisableWarningLifted: () => {
    // Custom action — for example, remove custom UI notification
  },
  videoDisabled: () => {
    // Custom action — for example, add custom UI notification
  },
  videoEnabled: () => {
    // Custom action — for example, remove custom UI notification
  },
});

Vous pouvez également régler la videoDisabledDisplayMode de manière dynamique en appelant la fonction Publisher.setStyle() méthode :

publisher.setStyle('videoDisabledDisplayMode', 'off');

// Alternately:

publisher.setStyle({
  videoDisabledDisplayMode: 'off',
  // other styles ...
});

Du point de vue de l'abonné, les événements suivants indiquent que le repli audio s'est produit. Bien que ces événements soient liés à l'abonné ils peuvent se produire à la fois en raison du repli audio de l'abonné et en conséquence du repli audio de l'éditeur. En d'autres termes, la différence entre le repli audio de l'éditeur et celui de l'abonné est la suivante la différence entre le repli audio de l'éditeur et de l'abonné est que, dans le cas de l'éditeur, le client de publication peut déclencher le repli audio sur la base de son propre flux. sur la base de sa propre dégradation du flux, ce qui explique pourquoi des événements supplémentaires sont envoyés du côté de l'éditeur. Pour le repli audio de l'abonné le Video Media Router de Vonage évalue la dégradation du réseau affectant l'abonné. Dans les deux cas, lors d'un repli audio de l'éditeur ou de l'abonné, les événements de l'abonné sont envoyés. les événements de l'abonné sont toujours envoyés pour indiquer que le récepteur a bénéficié d'un repli audio.

Un objet Abonné envoie les événements suivants liés à l'activation ou à la désactivation de la vidéo pour le flux de l'abonné :

  • videoEnabled - Envoyé lorsque la vidéo a été activée après avoir été désactivée.

  • videoDisabled - Envoyé lorsque la vidéo a été désactivée. Les reason de l'objet événement indique la raison pour laquelle la vidéo a été désactivée. (Cet objet événement est un VideoEnabledChangedEvent objet.)

  • videoDisableWarning - Envoyé lorsqu'il est déterminé que la qualité du flux s'est dégradée et que la vidéo sera désactivée si la qualité se dégrade davantage. Si la qualité se dégrade davantage, l'abonné désactive la vidéo et envoie un événement videoDisabled. Cet événement peut également être envoyé lors de l'utilisation de la fonction de repli audio de l'éditeur bêta si la qualité du flux de l'éditeur s'est dégradée.

  • videoDisableWarningLifted - La vidéo a été activée alors qu'elle était précédemment désactivée.

Par défaut, l'abonné affiche un indicateur d'avertissement de désactivation vidéo et un indicateur de désactivation vidéo lorsque l'écran de l'abonné s'éteint. videoDisableWarning et videoDisableWarningLifted sont envoyés. Vous pouvez désactiver l'affichage par défaut de l'indicateur en définissant le paramètre videoDisabledDisplayMode paramètre de style de l'objet Abonné.

L'exemple suivant utilise l'option videoDisabledDisplayMode pour que l'indicateur d'avertissement de désactivation vidéo et l'indicateur de désactivation vidéo clignotent toutes les secondes lorsque l'écran de l'ordinateur est éteint. videoDisableWarning et videoDisableWarningLifted sont envoyés :

const indicatorBlinker = new IndicatorBlinker(subscriber);

const IndicatorBlinker = function(subscriber) {
  const timer;
  const indicatorOn = false;
  subscriber.on({
    videoDisabled: function(event) {
      start();
    },
    videoDisableWarning: function(event) {
      start();
    },
    videoDisableWarningLifted: function(event) {
      stop();
    },
    videoEnabled: function(event) {
      stop();
    }
  });
  const start = function() {
    subscriber.setStyle('videoDisabledDisplayMode', 'on');
    if (timer) {
      clearInterval(timer);
    }
    timer = setInterval(function() {
      if (indicatorOn) {
        subscriber.setStyle('videoDisabledDisplayMode', 'off');
      } else {
        subscriber.setStyle('videoDisabledDisplayMode', 'on');
      }
      indicatorOn = !indicatorOn;
    }, 1000);
    indicatorOn = true;
  };
  const stop = function() {
    if (timer) {
      clearInterval(timer);
    }
  };
}

Vous pouvez également régler la videoDisabledDisplayMode style à 'off' et ajoutez vos propres éléments d'interface utilisateur en vous basant sur le modèle videoDisableWarning, videoDisabled, videoDisableWarningLiftedet videoEnabled événements.