Moderación — React Native

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, detener la publicación de una transmisión o silenciar su audio:

Comprobación de los privilegios de moderación

Una vez que te hayas conectado a una sesión, puedes comprobar si el cliente puede actuar como moderador.

Comprueba el valor de la capabilities.forceMute del objeto OTSession. Si se establece en trueel cliente puede moderar:

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

Comprueba el valor de la capabilities.forceDisconnect del objeto OTSession. Si se establece en trueel cliente puede moderar:

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>

Forzar la desconexión de un cliente

Para obligar a un editor de un flujo específico a silenciar su audio, llame a la función forceDisconnect() Método para acceder al componente OTSession, pasando el ID de conexión del cliente al que quieres silenciar:

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

Puedes obtener referencias a los ID de conexión en el connectionCreated del componente OTSession.

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() método de una referencia al componente OTSession, pasando el ID de la transmisión que deseas silenciar:

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

El OTSession.forceMuteStream() El método devuelve una Promise que se rechaza si la llamada falla (por ejemplo, si el cliente no tiene privilegios de moderación). En este contexto, el éxito indica que las opciones pasadas al método son válidas y que se ha enviado la solicitud para silenciar la transmisión. No garantiza que la solicitud se haya tramitado 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() método del objeto Session, pasando una matriz de flujos que quieras 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 forceMuteAll() se publican con el audio silenciado. Puede eliminar el estado de silencio de una sesión llamando al método disableForceMute() método del objeto OTSession:

session.disableForceMute();

Después de llamar a la OTSession.disableForceMute() De esta forma, las nuevas retransmisiones publicadas en la sesión ya no tendrán el audio silenciado.

Puedes obtener referencias a los ID de flujo cuando el objeto Session realiza el envío sessionConnected evento y streamCreated eventos.

Cuando se silencia la transmisión mediante uno de estos métodos (o a partir de unforzar llamada a flujo mudo en otro cliente SDK), en cada cliente que publica un flujo silenciado, el objeto OTPublisher envía un muteForced evento.

Del mismo modo, en respuesta a una llamada al OTSession.forceMuteAll() método (o a un Forzar el silencio de todas las llamadas en otro Client SDK), el objeto OTSession de cada cliente conectado a la sesión envía un muteForced y el evento active La propiedad del objeto de evento se establece en true.

Y en respuesta a una llamada a la OTSession.disableForceMute() método (o a un desactivar la llamada forzada al silencio en otro cliente SDK), el objeto OTSession de cada cliente conectado a la sesión envía un muteForced evento, y el active La propiedad del objeto de evento se establece en false.