Modération — Linux
Lorsque vous se connecter à une session avec un jeton qui inclut des privilèges de modérateur, vous pouvez forcer les autres clients à se déconnecter d'une session ou à couper leur son :
- Vérification des droits de modération
- Forcer un client à se déconnecter
- Désactiver l'audio des flux dans une session
Vérification des droits de modération
Une fois que vous êtes connecté à une session, vous pouvez vérifier si le client dispose des droits de modérateur en appelant la méthode otc_session_get_capabilities() fonction recevant en paramètre l'instance `otc_session`. Cette fonction renvoie une instance `otc_session_capabilities`. Vérifiez la valeur de force_disconnect ou force_mute membre de l'instance `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.
}
Forcer un client à se déconnecter
Les modérateurs peuvent obliger n'importe quel client à se déconnecter de la session. Pour forcer un client à se déconnecter, appelez la fonction otc_session_force_disconnect() fonction, en lui transmettant un pointeur vers l'instance otc_session et un pointeur vers l'instance otc_connection à déconnecter. Cette fonction prend les paramètres suivants :
session- Un pointeur sur l'instance otc_session.connection— Un pointeur vers l'instance `otc_connection` à déconnecter.
La fonction renvoie une instance de type `otc_status` indiquant soit une erreur, soit une réussite.
success = otc_session_force_disconnect(session, connection);
if (success != OTC_SUCCESS) {
printf("Could not force disconnect successfully.");
}
Vous pouvez obtenir des références à otc_connection dans les cas où le on_connection_created() de la fonction de rappel du otc_session_callbacks est appelée. Le rappel comprend un pointeur vers l'instance otc_connection représentant une connexion. Voir aussi Détection de la connexion et de la déconnexion d'autres clients. Vous pouvez également obtenir un otc_connection à partir de n'importe quelle instance de flux. Utiliser la fonction otc_stream_get_connection() en passant dans le otc_stream instance.
Désactiver l'audio des flux dans une session
Les modérateurs peuvent obliger tous les clients ou un éditeur d'un flux spécifique à couper le son qu'ils publient.
Pour forcer un éditeur d'un flux spécifique à couper le son, appelez la commande otc_session_force_mute_stream() fonction, en lui transmettant un pointeur vers l'instance otc_session et la chaîne d'identifiant du flux à mettre en sourdine. Cette fonction prend les paramètres suivants :
session- Un pointeur sur l'instance otc_session.stream_id_to_mute- Un pointeur sur la chaîne d'identification du flux à mettre en sourdine.
La fonction renvoie une instance de type `otc_status` indiquant soit une erreur, soit une réussite.
success = otc_session_force_mute_stream(session, stream_id);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
Les modérateurs peuvent également forcer tous les flux (à l'exception d'un tableau de flux facultatif) d'une session à couper le son publié. Pour ce faire, il suffit d'appeler la fonction otc_session_force_mute_all() Cette fonction prend en compte les paramètres suivants Cette fonction prend les paramètres suivants :
session- Un pointeur sur l'instance otc_session.excluded_streams_ids- Un pointeur vers un tableau d'ID de flux pour les flux que vous souhaitez exclure de la mise en sourdine. Si ce paramètre vaut nullptr, tous les flux seront mis en sourdine (y compris ceux publiés par le client local).excluded_streams_len- La longueur du tableau des flux exclus.
La fonction renvoie une instance de type `otc_status` indiquant soit une erreur, soit une réussite :
success = otc_session_force_mute_all(session, streams, stream_count);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
Un flux publié par le modérateur appelant le otc_session_force_mute_all() est mise en sourdine avec les autres flux de la session, à moins que vous n'ajoutiez le flux (ou les flux) du modérateur au tableau des flux exclus.
Si le excluded_streams_len est fixé à 0, tous les flux de la session (y compris ceux du modérateur) cesseront de publier de l'audio.
success = otc_session_force_mute_all(session, nullptr, 0);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
De même, tous les flux publiés après l'appel à la fonction otc_session_force_mute_all() sont publiées avec le son coupé. Vous pouvez supprimer l'état de sourdine d'une session en appelant la fonction otc_session_disable_force_mute(otc_session *session)() fonction
success = otc_session_disable_force_mute(session);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
Après avoir appelé le otc_session_disable_force_mute() les nouveaux flux publiés dans la session n'auront plus le son coupé.
Vous pouvez obtenir des références à otc_stream dans les cas où le on_stream_received() de la fonction de rappel du otc_session_callbacks est appelée. Le rappel comprend un pointeur vers l'instance otc_stream représentant un flux. Appeler la structure otc_stream_get_id() (en passant par le pointeur d'un otc_stream ) pour obtenir l'identifiant du flux. Voir Détection des flux dans une session. Vous pouvez également obtenir un otc_stream représentant le flux d'un éditeur en appelant l'instance otc_publisher_get_stream() en passant la fonction otc_publisher de l'instance. Vous pouvez également obtenir un otc_stream représentant le flux d'un abonné en appelant la fonction otc_subscriber_get_stream() en passant la fonction otc_subscriber instance.
Lorsque le flux est mis en sourdine à la suite de l'une de ces fonctions (ou à la suite de l'activation d'une fonction forcer l'appel de flux muet dans un autre client SDK), le on_mute_forced() de la fonction de rappel du otc_publisher_callbacks est appelée dans chaque client publiant un flux en sourdine.
De même, en réponse à un appel au otc_session_force_mute_all() (ou à une fonction forcer la mise en sourdine de tous les appels dans un autre client SDK), le on_mute_forced() de la fonction de rappel du otc_session_callbacks dans chaque client connecté à la session. et la structure active de la propriété otc_on_mute_forced_info transmise à la fonction est fixée à true.
Et en réponse à un appel à la otc_session_disable_force_mute() (ou à une fonction désactiver l'appel en sourdine dans un autre client SDK), le on_mute_forced() de la fonction de rappel du otc_publisher_callbacks est appelée dans chaque client connecté à la session, et la structure active de la propriété otc_on_mute_forced_info structure passée en set à false.