Modération — Windows
Lorsque vous se connecter à une session avec un jeton qui inclut des privilèges de modérateur, vous pouvez forcer les autres clients à se déconnecter d'une session ou à couper leur son :
- Vérification des droits de modération
- Forcer un client à se déconnecter
- Désactiver l'audio des flux dans une session
Vérification des droits de modération
La possibilité de forcer la mise en sourdine des flux est réservée aux clients connectés à l'aide d'un jeton auquel le rôle de modérateur a été attribué. Une fois connecté à une session, vous pouvez vérifier si le client est habilité à modérer en consultant la valeur de la CanForceDisconnect ou le CanForceMute de la propriété Session.Capabilities objet.
if (session.Capabilities.CanForceDisconnect) {
// The client can force disconnect. See the next section.
} else {
// The client cannot force disconnect.
}
if (session.Capabilities.CanForceMute) {
// The client can force mute. See the next section.
} else {
// The client cannot force mute.
}
Forcer un client à se déconnecter
Les modérateurs peuvent obliger n'importe quel client à se déconnecter de la session. Pour forcer un client à se déconnecter, appelez la fonction ForceDisconnect() de l'objet Session, en y ajoutant l'objet Connexion du client à déconnecter :
session.ForceDisconnect(connection);
Vous pouvez obtenir des références à des objets de connexion lorsque l'objet Session envoie la commande Session.ConnectionCreated événement. Voir Détection de la connexion et de la déconnexion d'autres clients. Vous pouvez également obtenir un objet Connexion à partir de la fonction Connection d'un objet Stream.
Lorsque l'appel au Session.ForceDisconnect() échoue, l'objet Session envoie le message Error événement. Par exemple, si le client n'a pas de privilèges de modération, l'option ErrorCode transmis avec l'objet ErrorEventArgs est fixé à SessionUnableToForceDisconnect. Dans ce contexte, le succès indique que les options transmises à la méthode sont valides et que la demande de déconnexion de la connexion a été envoyée. Il ne garantit pas que la demande a été traitée avec succès.
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() de l'objet Session, en lui transmettant l'objet Stream correspondant au flux à mettre en sourdine :
session.ForceMuteStream(stream);
Lorsque l'appel au Session.ForceMuteStream() échoue, l'objet Session envoie le message Error événement. Par exemple, si le client n'a pas de privilèges de modération, l'option ErrorCode transmis avec l'objet ErrorEventArgs est fixé à SessionUnableToForceMute. 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 été envoyée. Il ne garantit pas que la demande a é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() de l'objet Session, en transmettant une énumération de flux exclus que vous souhaitez exclure de l'inhibition :
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 Session.ForceMuteAll() sont publiées avec le son coupé. Vous pouvez supprimer l'état de sourdine d'une session en appelant la méthode Session.DisableForceMute():
session.DisableForceMute();
Après avoir appelé le Session.DisableForceMute() les nouveaux flux publiés dans la session n'auront plus le son coupé.
Vous pouvez obtenir des références à des objets Stream lorsque l'objet Session envoie la commande StreamReceived qui comprend un argument Stream. Voir aussi Détection des flux dans une session. Vous pouvez également obtenir un objet Stream à partir de la fonction Stream d'un objet Publisher ou Subscriber.
Lorsque le flux est mis en sourdine à la suite de l'une de ces méthodes (ou à la suite d'une commande forcer l'appel de flux muet dans un autre client SDK), dans chaque client publiant un flux en sourdine, les objets Publisher envoient MuteForced événements.
De même, en réponse à un appel au Session.ForceMuteAll() (ou à une méthode forcer la mise en sourdine de tous les appels dans un autre client SDK), l'objet Session envoie un MuteForced dans chaque client connecté à la session, et l'événement IsActive de l'objet MuteForcedEventArgs est fixée à true.