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
- Forçar a desconexão de um cliente
- Silenciar o áudio das transmissões em uma sessão
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.