Moderação — React Native

Quando você conectar-se a uma sessão Com um token que inclua privilégios de moderador, você pode forçar outros clientes a se desconectarem de uma sessão, interromper a transmissão de um stream ou silenciar o áudio deles:

Verificando se há privilégios de moderação

Depois de se conectar a uma sessão, você pode verificar se o cliente tem permissão para moderar.

Verifique o valor do capabilities.forceMute propriedade do objeto OTSession. Se estiver definida como true, o cliente pode moderar:

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

Verifique o valor do capabilities.forceDisconnect propriedade do objeto OTSession. Se estiver definida como true, o cliente pode 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>

Forçar a desconexão de um cliente

Para forçar um emissor de uma transmissão específica a silenciar seu áudio, chame a função forceDisconnect() método de referência ao componente OTSession, passando o ID de conexão do cliente que você deseja silenciar:

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

É possível obter referências aos IDs de conexão no connectionCreated manipulador de eventos do componente OTSession.

Silenciar o áudio das transmissões em uma sessão

Os moderadores podem forçar todos os usuários ou um editor de uma transmissão específica a silenciar o áudio publicado.

Para forçar um emissor de uma transmissão específica a silenciar seu áudio, chame a função forceMuteStream() método que recebe uma referência ao componente OTSession, passando o ID do stream que você deseja silenciar:

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

O OTSession.forceMuteStream() O método retorna uma Promise que é rejeitada caso a chamada falhe (por exemplo, se o cliente não tiver privilégios de moderação). Nesse contexto, o sucesso indica que as opções passadas ao método são válidas e que a solicitação para silenciar a transmissão foi enviada. Isso não garante que a solicitação tenha sido atendida com sucesso.

Os moderadores também podem forçar todas as transmissões (exceto um conjunto opcional de transmissões) em uma sessão a silenciar o áudio publicado. Chame a função forceMuteAll() método do objeto Session, passando uma matriz de fluxos que você deseja excluir do silenciamento:

session.forceMuteAll(excludedStreams);

Uma transmissão publicada pelo moderador chamando o forceMuteAll() O método é silenciado junto com outras transmissões da sessão, a menos que você adicione a transmissão (ou transmissões) do moderador à matriz de transmissões excluídas.

Se você deixar de fora o excludedStreams parâmetro, todas as transmissões da sessão (incluindo as do moderador) deixarão de transmitir áudio:

session.forceMuteAll();

Além disso, quaisquer streams publicados após a chamada à função forceMuteAll() As sessões são publicadas com o áudio silenciado. É possível desativar o silenciamento de uma sessão chamando a função disableForceMute() método do objeto OTSession:

session.disableForceMute();

Depois de chamar a OTSession.disableForceMute() Com esse método, as novas transmissões publicadas na sessão não terão mais o áudio silenciado.

É possível obter referências aos IDs dos streams quando o objeto Session é acionado sessionConnected evento e streamCreated eventos.

Quando a transmissão é silenciada como resultado de um desses métodos (ou a partir de umforçar o silenciamento da chamada de streaming em outro Client SDK), em cada cliente que publica um fluxo silenciado, o objeto OTPublisher despacha um muteForced evento.

Da mesma forma, em resposta a uma ligação para o OTSession.forceMuteAll() método (ou a um silenciar à força todas as chamadas em outro Client SDK), o objeto OTSession em cada cliente conectado à sessão despacha um muteForced evento, e o active a propriedade do objeto do evento está definida como true.

E em resposta a uma ligação para o OTSession.disableForceMute() método (ou a um desativar o silenciamento forçado de chamadas em outro Client SDK), o objeto OTSession em cada cliente conectado à sessão despacha um muteForced evento, e o active a propriedade do objeto do evento está definida como false.