Moderación — Windows
Cuando conectarse a una sesión Con un token que incluya privilegios de moderador, puedes obligar a otros clientes a desconectarse de una sesión o silenciar su audio:
- Comprobación de los privilegios de moderación
- Forzar la desconexión de un cliente
- Silenciar el audio de los flujos de una sesión
Comprobación de los privilegios de moderación
La posibilidad de silenciar de forma forzada las transmisiones está reservada a los clientes que estén conectados con un token al que se le haya asignado el rol de moderador. Una vez que te hayas conectado a una sesión, puedes comprobar si el cliente tiene capacidad para moderar consultando el valor de la CanForceDisconnect o el CanForceMute propiedad del Session.Capabilities objeto.
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.
}
Forzar la desconexión de un cliente
Los moderadores pueden obligar a cualquier cliente a desconectarse de la sesión. Para obligar a un cliente a desconectarse, llama a la función ForceDisconnect() método del objeto `Session`, pasando como parámetro el objeto `Connection` correspondiente al cliente que deseas desconectar:
session.ForceDisconnect(connection);
Puede obtener referencias a objetos Connection cuando el objeto Session envía el comando Session.ConnectionCreated evento. Véase Detección de la conexión y desconexión de otros clientes. También puedes obtener un objeto Connection desde el Connection propiedad de un objeto Stream.
Cuando se realiza la llamada a la Session.ForceDisconnect() Si el método falla, el objeto Session envía el Error evento. Por ejemplo, si el cliente no tiene privilegios de moderación, el ErrorCode El parámetro pasado junto con el objeto ErrorEventArgs se establece en SessionUnableToForceDisconnect. En este contexto, el éxito indica que las opciones introducidas en el método son válidas y que se ha enviado la solicitud para desconectar la conexión. No garantiza que la solicitud se haya ejecutado correctamente.
Silenciar el audio de los flujos de una sesión
Los moderadores pueden obligar a todos los clientes o a un editor de un flujo específico a silenciar su audio publicado.
Para obligar a un editor de un flujo específico a silenciar su audio, llame a la función ForceMuteStream() del objeto Session, pasando el objeto Stream correspondiente al flujo que se desea silenciar:
session.ForceMuteStream(stream);
Cuando se realiza la llamada a la Session.ForceMuteStream() Si el método falla, el objeto Session envía el Error evento. Por ejemplo, si el cliente no tiene privilegios de moderación, el ErrorCode El parámetro pasado junto con el objeto ErrorEventArgs se establece en SessionUnableToForceMute. En este contexto, el éxito indica que los parámetros pasados al método son válidos y que se ha enviado la solicitud para silenciar la transmisión. No garantiza que la solicitud se haya ejecutado correctamente.
Los moderadores también pueden forzar que todas las transmisiones (excepto un conjunto opcional de ellas) de una sesión silencien el audio publicado. Llama a la función ForceMuteAll() del objeto Session, pasando una enumeración de los flujos excluidos que desea excluir del silenciamiento:
session.ForceMuteAll(excludedStreams);
Una retransmisión publicada por el moderador en la que se hace referencia al ForceMuteAll() se silencia junto con otras secuencias de la sesión, a menos que añadas la secuencia (o secuencias) del moderador a la matriz de secuencias excluidas.
Si omites el excludedStreams todas las secuencias de la sesión (incluidas las del moderador) dejarán de publicar audio:
session.ForceMuteAll();
Además, cualquier flujo que se publique después de la llamada a la función Session.ForceMuteAll() se publican con el audio silenciado. Puede eliminar el estado de silencio de una sesión llamando al método Session.DisableForceMute():
session.DisableForceMute();
Después de llamar a la Session.DisableForceMute() De esta forma, las nuevas retransmisiones publicadas en la sesión ya no tendrán el audio silenciado.
Puedes obtener referencias a objetos `Stream` cuando el objeto `Session` envía el StreamReceived que incluye un argumento Stream. Véase Detección de flujos en una sesión. También puede obtener un objeto Stream de la función Stream de un objeto Editor o Suscriptor.
Cuando el flujo se silencia como resultado de uno de estos métodos (o de un forzar llamada a flujo mudo en otro cliente SDK), en cada cliente que publica un flujo silenciado, los objetos Publisher envían MuteForced eventos.
Del mismo modo, en respuesta a una llamada al Session.ForceMuteAll() método (o a un Forzar el silencio de todas las llamadas en otro Client SDK), el objeto Session envía un MuteForced evento en cada cliente conectado a la sesión, y el IsActive del objeto MuteForcedEventArgs es igual a true.