Moderação — Linux

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

Depois de se conectar a uma sessão, você pode verificar se o cliente tem permissão para moderar chamando a função otc_session_get_capabilities() função que recebe como parâmetro a instância `otc_session`. Essa função retorna uma instância de `otc_session_capabilities`. Verifique o valor de force_disconnect ou force_mute membro da instância otc_session_capabilities:

if (otc_session_get_capabilities(session).force_disconnect) {
  // The client can force disconnect. See the next section.
} else {
  // The client cannot force disconnect.
}
if (otc_session_get_capabilities(session).force_mute) {
  // 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 otc_session_force_disconnect() função, passando um ponteiro para a instância otc_session e um ponteiro para a instância otc_connection a ser desconectada. Essa função recebe os seguintes parâmetros:

  • session — Um ponteiro para a instância otc_session.
  • connection — Um ponteiro para a instância `otc_connection` a ser desconectada.

A função retorna uma instância de `otc_status` indicando se houve erro ou sucesso.

success = otc_session_force_disconnect(session, connection);
if (success != OTC_SUCCESS) {
  printf("Could not force disconnect successfully.");
}

Você pode obter referências a otc_connection casos em que o on_connection_created() função de retorno de chamada do otc_session_callbacks instância é chamada. A função de retorno inclui um ponteiro para o otc_connection estrutura que representa uma conexão. Consulte Detectar quando outros clientes se conectaram e se desconectaram. Você também pode obter um otc_connection instância de qualquer instância de fluxo. Use a função otc_stream_get_connection() passando pelo otc_stream instância.

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 otc_session_force_mute_stream() função, passando um ponteiro para a instância otc_session e a string de identificação do stream a ser silenciado. Essa função recebe os seguintes parâmetros:

  • session — Um ponteiro para a instância otc_session.
  • stream_id_to_mute — Um ponteiro para a string de identificação do stream que deve ser silenciado.

A função retorna uma instância de `otc_status` indicando se houve erro ou sucesso.

success = otc_session_force_mute_stream(session, stream_id);
if (success != OTC_SUCCESS) {
  printf("Could not force mute successfully.");
}

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 otc_session_force_mute_all() função. Essa função recebe os seguintes parâmetros:

  • session — Um ponteiro para a instância otc_session.
  • excluded_streams_ids — Um ponteiro para uma matriz de IDs de fluxos que você deseja excluir do silenciamento. Se esse parâmetro for definido como nullptr, todos os fluxos serão silenciados (incluindo aqueles publicados pelo cliente local).
  • excluded_streams_len — O comprimento da matriz de fluxos excluídos.

A função retorna uma instância de `otc_status` indicando se houve erro ou sucesso:

success = otc_session_force_mute_all(session, streams, stream_count);
if (success != OTC_SUCCESS) {
  printf("Could not force mute successfully.");
}

Uma transmissão publicada pelo moderador chamando o otc_session_force_mute_all() A função é silenciada 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 o excluded_streams_len Se o parâmetro for definido como 0, todas as transmissões da sessão (incluindo as do moderador) deixarão de transmitir áudio.

success = otc_session_force_mute_all(session, nullptr, 0);
if (success != OTC_SUCCESS) {
  printf("Could not force mute successfully.");
}

Além disso, quaisquer streams publicados após a chamada à função otc_session_force_mute_all() As sessões são publicadas com o áudio silenciado. Você pode desativar o silenciamento de uma sessão chamando a função otc_session_disable_force_mute(otc_session *session)() função

success = otc_session_disable_force_mute(session);
  if (success != OTC_SUCCESS) {
    printf("Could not force mute successfully.");
  }

Depois de chamar a otc_session_disable_force_mute() A partir dessa função, as novas transmissões publicadas na sessão não terão mais o áudio silenciado.

Você pode obter referências a otc_stream casos em que o on_stream_received() função de retorno de chamada do otc_session_callbacks instância é chamada. A função de retorno inclui um ponteiro para o otc_stream estrutura que representa um fluxo. Chame a otc_stream_get_id() função (que recebe como parâmetro o ponteiro para um otc_stream (instância) para obter o ID do fluxo. Consulte Detecção de fluxos em uma sessão. Você também pode obter um otc_stream instância que representa o fluxo de um editor, chamando o otc_publisher_get_stream() função, passando o otc_publisher instância. Você também pode obter um otc_stream instância que representa o fluxo de um assinante, chamando o otc_subscriber_get_stream() função, passando o otc_subscriber instância.

Quando a transmissão é silenciada como resultado de uma dessas funções (ou a partir de um forçar o silenciamento da chamada de streaming em outro Client SDK), o on_mute_forced() função de retorno de chamada do otc_publisher_callbacks A função `struct` é chamada em cada cliente que publica um fluxo silenciado.

Da mesma forma, em resposta a uma ligação para o otc_session_force_mute_all() função (ou para um silenciar à força todas as chamadas em outro Client SDK), o on_mute_forced() função de retorno de chamada do otc_session_callbacks estrutura em cada cliente conectado à sessão. E o active propriedade do otc_on_mute_forced_info a estrutura passada para a função é definida como true.

E em resposta a uma ligação para o otc_session_disable_force_mute() função (ou para um desativar o silenciamento forçado de chamadas em outro Client SDK), o on_mute_forced() função de retorno de chamada do otc_publisher_callbacks A função `struct` é chamada em cada cliente conectado à sessão, e o active propriedade do otc_on_mute_forced_info estrutura passada em set para false.