Moderação — Windows

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 ou silenciar o áudio deles:

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

A capacidade de forçar o silenciamento de transmissões é reservada aos clientes conectados com um token ao qual foi atribuída a função de moderador. Depois de se conectar a uma sessão, é possível verificar se o cliente tem permissão para moderar verificando o valor do CanForceDisconnect ou o CanForceMute propriedade do 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.
}

Forçar a desconexão de um cliente

Os moderadores podem forçar qualquer cliente a se desconectar da sessão. Para forçar um cliente a se desconectar, chame a função ForceDisconnect() método do objeto Session, passando o objeto Connection correspondente ao cliente que você deseja desconectar:

session.ForceDisconnect(connection);

É possível obter referências a objetos Connection quando o objeto Session envia o Session.ConnectionCreated evento. Veja Detectar quando outros clientes se conectaram e se desconectaram. Você também pode obter um objeto Connection a partir do Connection propriedade de um objeto Stream.

Quando a chamada para o Session.ForceDisconnect() Se o método falhar, o objeto Session envia o Error evento. Por exemplo, se o cliente não tiver privilégios de moderação, o ErrorCode o parâmetro passado junto com o objeto ErrorEventArgs é definido como SessionUnableToForceDisconnect. Nesse contexto, o sucesso indica que os parâmetros passados ao método são válidos e que a solicitação para desconectar a conexão foi enviada. Isso não garante que a solicitação tenha sido processada com sucesso.

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 do objeto Session, passando o objeto Stream correspondente ao fluxo a ser silenciado:

session.ForceMuteStream(stream);

Quando a chamada para o Session.ForceMuteStream() Se o método falhar, o objeto Session envia o Error evento. Por exemplo, se o cliente não tiver privilégios de moderação, o ErrorCode o parâmetro passado junto com o objeto ErrorEventArgs é definido como SessionUnableToForceMute. Nesse contexto, o sucesso indica que os parâmetros passados ao método são válidos e que a solicitação para silenciar o fluxo 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 enumeração dos 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 Session.ForceMuteAll() As sessões são publicadas com o áudio silenciado. É possível desativar o silenciamento de uma sessão chamando a função Session.DisableForceMute():

session.DisableForceMute();

Depois de chamar a Session.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 a objetos `Stream` quando o objeto `Session` envia o StreamReceived evento, que inclui um argumento `Stream`. Consulte Detecção de fluxos em uma sessão. Você também pode obter um objeto Stream a partir do Stream propriedade de um objeto Publisher ou Subscriber.

Quando a transmissão é silenciada como resultado de um desses métodos (ou a partir de um forçar o silenciamento da chamada de streaming em outro Client SDK), em cada cliente que publica um fluxo silenciado, os objetos Publisher enviam MuteForced eventos.

Da mesma forma, em resposta a uma ligação para o Session.ForceMuteAll() método (ou a um silenciar à força todas as chamadas em outro Client SDK), o objeto Session envia um MuteForced evento em cada cliente conectado à sessão, e o IsActive A propriedade do objeto MuteForcedEventArgs está definida como true.