Modération — React Native

Lorsque vous se connecter à une session Si vous disposez d'un jeton doté de privilèges de modérateur, vous pouvez forcer d'autres clients à se déconnecter d'une session, interrompre la diffusion d'un flux ou couper leur son :

Vérification des droits de modération

Une fois que vous vous êtes connecté à une session, vous pouvez vérifier si le client peut modérer.

Vérifiez la valeur du capabilities.forceMute de l'objet OTSession. S'il a la valeur truele client peut modérer :

if (session.capabilities.forceMute) {
    // The client can mute participants.
} else {
    // The client cannot mute.
}

Vérifiez la valeur du capabilities.forceDisconnect de l'objet OTSession. S'il a la valeur truele client peut modérer :

if (session.capabilities.forceDisconnect) {
    // The client can force participants to disconnect.
} else {
    // The client cannot force participants to disconnect.
}
<a name="force_disconnect" class="doc-target"></a>

Forcer un client à se déconnecter

Pour forcer un éditeur d'un flux spécifique à couper le son, appelez la commande forceDisconnect() de ref au composant OTSession, en passant l'identifiant de connexion du client que vous souhaitez mettre en sourdine :

sessionRef.forceDisconnect('connection-id')
  .then(function() {
    console.log("successfully called.");
  }).catch(function(error) {
    console.log("Error: ", error);
  });

Vous pouvez obtenir les références aux identifiants de connexion dans le connectionCreated du composant OTSession.

Désactiver l'audio des flux dans une session

Les modérateurs peuvent obliger tous les clients ou un éditeur d'un flux spécifique à couper le son qu'ils publient.

Pour forcer un éditeur d'un flux spécifique à couper le son, appelez la commande forceMuteStream() méthode d'une référence au composant OTSession, en lui transmettant l'identifiant du flux que vous souhaitez mettre en sourdine :

sessionRef.forceMuteStream('stream-id')
  .then(function() {
    console.log("successfully called.");
  }).catch(function(error) {
    console.log("Error: ", error);
  });

Les OTSession.forceMuteStream() La méthode renvoie une Promise qui est rejetée si l'appel échoue (par exemple, si le client ne dispose pas des droits de modération). Dans ce contexte, le succès indique que les options transmises à la méthode sont valides et que la demande de mise en sourdine du flux a bien été envoyée. Cela ne garantit pas que la demande ait été traitée avec succès.

Les modérateurs peuvent également forcer tous les flux (à l'exception d'un tableau de flux facultatif) d'une session à couper le son publié. Pour ce faire, il suffit d'appeler la fonction forceMuteAll() méthode de l'objet Session, en lui transmettant un tableau de flux que vous souhaitez exclure de la mise en sourdine :

session.forceMuteAll(excludedStreams);

Un flux publié par le modérateur appelant le forceMuteAll() est mise en sourdine avec les autres flux de la session, à moins que vous n'ajoutiez le (ou les) flux du modérateur au tableau des flux exclus.

Si vous ne tenez pas compte de la excludedStreams tous les flux de la session (y compris ceux du modérateur) cesseront de publier de l'audio :

session.forceMuteAll();

De même, tous les flux publiés après l'appel à la fonction forceMuteAll() sont publiées avec le son coupé. Vous pouvez supprimer l'état de sourdine d'une session en appelant la méthode disableForceMute() de l'objet OTSession :

session.disableForceMute();

Après avoir appelé le OTSession.disableForceMute() les nouveaux flux publiés dans la session n'auront plus le son coupé.

Vous pouvez obtenir des références aux identifiants de flux lorsque l'objet Session effectue une répartition sessionConnected événement et streamCreated événements.

Lorsque le flux est mis en sourdine à la suite de l'une de ces méthodes (ou à partir d'unforcer l'appel de flux muet dans un autre client SDK), pour chaque client publiant un flux en mode silencieux, l'objet OTPublisher envoie un muteForced événement.

De même, en réponse à un appel au OTSession.forceMuteAll() (ou à une méthode forcer la mise en sourdine de tous les appels dans un autre client SDK), l'objet OTSession de chaque client connecté à la session déclenche un muteForced et l'événement active de l'objet événement est fixée à true.

Et en réponse à un appel à la OTSession.disableForceMute() (ou à une méthode désactiver l'appel en sourdine dans un autre client SDK), l'objet OTSession de chaque client connecté à la session déclenche un muteForced événement, et le active de l'objet événement est fixée à false.