Solution de secours audio — React Native
Utilisez l'API de repli audio d'OpenTok pour hiérarchiser dynamiquement l'audio en fonction de la qualité du réseau.
Pour des informations conceptuelles, voir le aperçu du repli audio.
Remarque : Les audioFallbackEnabled prop de la OTPublisher sera obsolète. Veuillez utiliser le composant audioFallback.subscriber à la place.
Cette rubrique comprend les sections suivantes :
Activation et désactivation du mode de secours « audio uniquement »
Régler le audioFallback de la propriété properties vous passez dans le OTPublisher de la composante :
// 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,
},
}}
/>
Les audioFallback comprend deux propriétés booléennes :
publisher- Activer ou non (true) ou désactiver (false) le repli audio de l'éditeur. Lorsque le fallback audio de l'éditeur est activé, lorsque la qualité du flux s'est dégradée de manière significative (par exemple, en raison des conditions du réseau), l'éditeur désactive la vidéo afin de préserver la qualité audio. La valeur par défaut estfalse(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). La fonction de repli audio pour les abonnés n'est pas prise en charge dans les sessions relayées. Lorsque cette fonction est activée, si le Vonage Video Media Router détecte une dégradation significative de la qualité d'un flux pour un abonné donné, il désactive la vidéo pour cet abonné afin de préserver la qualité audio. La valeur par défaut esttrue(la solution de secours audio pour les abonnés est activée). Ce paramètre remplace leaudioFallbackEnabledqui sera dépréciée.
Événements de repli audio
Lorsque le repli audio de l'éditeur est activé, les méthodes de rappel du composant OTPublisher sont invoquées en réponse à l'évolution des conditions de qualité :
videoDisableWarning()- Appelé 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()- Appelé 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()- Appelé 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()— Appelé avec lereasonpropriété définie sur « quality » lorsque l'éditeur constate que la qualité du flux s'est améliorée et que le transport vidéo sortant a été réactivé.
Par exemple, le code suivant ajoute des récepteurs d'événements pour les événements liés au repli audio (afin que vous puissiez fournir des notifications à l'interface utilisateur) :
<OTPublisher
properties={{
audioFallback: {
publisher: true,
}
}}
eventHandlers={{
videoDisableWarning: () => {
// Add UI notification
},
videoDisableWarningLifted: () => {
// Adjust UI notification
},
videoDisabled: () => {
// Add UI notification
},
videoEnabled: () => {
// Remove UI notification
},
}}
/>
Du point de vue de l'abonné, les événements suivants indiquent qu'un basculement audio s'est produit. Bien que ces événements soient liés à l'abonné, ils peuvent survenir aussi bien en raison d'un basculement audio côté abonné qu'à la suite d'un basculement audio côté éditeur. En d’autres termes, la différence entre le basculement audio côté éditeur et celui côté abonné réside dans le fait que, dans le cas de l’éditeur, le client éditeur peut déclencher le basculement audio en raison de la dégradation de son propre flux, ce qui explique pourquoi des événements supplémentaires côté éditeur sont envoyés. Dans le cas du basculement audio côté abonné, le Vonage Video Media Router évalue la dégradation du réseau affectant l’abonné. Dans les deux cas, lors d’un basculement audio côté éditeur ou côté abonné, des événements côté abonné sont toujours envoyés pour indiquer qu’un basculement audio s’est produit pour le destinataire.
Le composant OTSubscriber comprend des méthodes de rappel qui sont invoquées en fonction des événements liés à l'activation ou à la désactivation de la vidéo pour le flux de l'abonné :
videoEnabled()— Appelée lorsque la vidéo a été réactivée après avoir été désactivée.videoDisabled()— Appelé lorsque la vidéo a été désactivée. Lareasonde 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()— Appelée lorsqu'il est constaté que la qualité du flux s'est dégradée ; la vidéo sera désactivée si la qualité continue de se dégrader. Si la qualité continue de se dégrader, l'abonné désactive la vidéo et appelle lavideoDisabled()rappel. Cet événement peut également être déclenché lors de l'utilisation de la fonctionnalité de repli audio de l'éditeur si la qualité du flux de ce dernier se détériore.videoDisableWarningLifted()— Appelé lorsque la vidéo a été réactivée après avoir été désactivée.
Par exemple, le code suivant ajoute des récepteurs d'événements pour les événements liés au repli audio (afin que vous puissiez fournir des notifications à l'interface utilisateur) :
<OTSubscriber
eventHandlers={{
videoDisableWarning: () => {
// Add UI notification
},
videoDisableWarningLifted: () => {
// Adjust UI notification
},
videoDisabled: () => {
// Add UI notification
},
videoEnabled: () => {
// Remove UI notification
},
}}
/>