Moderation — Linux
Wenn Sie mit einer Sitzung verbinden mit einem Token, das Moderatorenrechte beinhaltet, können Sie andere Clients zwingen, die Verbindung zu einer Sitzung zu trennen oder ihren Ton stumm zu schalten:
- Überprüfung der Moderationsrechte
- Einen Client zwingen, die Verbindung zu trennen
- Stummschalten des Tons von Streams in einer Sitzung
Überprüfung der Moderationsrechte
Sobald Sie eine Verbindung zu einer Sitzung hergestellt haben, können Sie überprüfen, ob der Client Moderationsrechte hat, indem Sie die Funktion otc_session_get_capabilities() Funktion, der die otc_session-Instanz übergeben wird. Diese Funktion gibt eine otc_session_capabilities-Instanz zurück. Überprüfen Sie den Wert von force_disconnect oder force_mute Element der Instanz „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.
}
Einen Client zwingen, die Verbindung zu trennen
Moderatoren können jeden Kunden dazu zwingen, die Verbindung zur Sitzung zu trennen. Um einen Client zum Trennen der Verbindung zu zwingen, rufen Sie die Funktion otc_session_force_disconnect() Funktion, wobei ein Zeiger auf die otc_session-Instanz und ein Zeiger auf die otc_connection-Instanz, deren Verbindung getrennt werden soll, übergeben werden. Diese Funktion benötigt die folgenden Parameter:
session- Ein Zeiger auf die otc_session-Instanz.connection— Ein Zeiger auf die „otc_connection“-Instanz, deren Verbindung getrennt werden soll.
Die Funktion gibt eine `otc_status`-Instanz zurück, die entweder einen Fehler oder einen Erfolg anzeigt.
success = otc_session_force_disconnect(session, connection);
if (success != OTC_SUCCESS) {
printf("Could not force disconnect successfully.");
}
Sie können Referenzen erhalten zu otc_connection Instanzen, wenn die on_connection_created() Callback-Funktion des otc_session_callbacks Instanz aufgerufen wird. Der Callback enthält einen Zeiger auf den otc_connection Struktur, die eine Verbindung darstellt. Siehe Erkennen, wann andere Clients eine Verbindung hergestellt und getrennt haben. Sie können auch eine otc_connection Instanz aus einer beliebigen Stream-Instanz. Funktion verwenden otc_stream_get_connection() die in der otc_stream Instanz.
Stummschalten des Tons von Streams in einer Sitzung
Moderatoren können alle Clients oder einen Publisher eines bestimmten Streams dazu zwingen, ihre veröffentlichten Audiodaten stumm zu schalten.
Um einen Publisher eines bestimmten Streams zu zwingen, seinen Ton stumm zu schalten, rufen Sie die otc_session_force_mute_stream() Funktion, wobei ein Zeiger auf die `otc_session`-Instanz und die Stream-ID-Zeichenkette für den zu stummschaltenden Stream übergeben werden. Diese Funktion benötigt die folgenden Parameter:
session- Ein Zeiger auf die otc_session-Instanz.stream_id_to_mute- Ein Zeiger auf den Stream-ID-String für den stummzuschaltenden Stream.
Die Funktion gibt eine `otc_status`-Instanz zurück, die entweder einen Fehler oder einen Erfolg anzeigt.
success = otc_session_force_mute_stream(session, stream_id);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
Moderatoren können auch erzwingen, dass alle Streams (mit Ausnahme eines optionalen Arrays von Streams) in einer Sitzung stummgeschaltet werden. Rufen Sie die otc_session_force_mute_all() Funktion. Diese Funktion benötigt die folgenden Parameter:
session- Ein Zeiger auf die otc_session-Instanz.excluded_streams_ids- Ein Zeiger auf ein Array von Stream-IDs für Streams, die Sie von der Stummschaltung ausschließen möchten. Wenn dieser Parameter auf nullptr gesetzt ist, werden alle Streams stummgeschaltet (einschließlich der vom lokalen Client veröffentlichten).excluded_streams_len- Die Länge des ausgeschlossenen Stream-Arrays.
Die Funktion gibt eine `otc_status`-Instanz zurück, die entweder einen Fehler oder einen Erfolg anzeigt:
success = otc_session_force_mute_all(session, streams, stream_count);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
Ein vom Moderator veröffentlichter Stream, der die otc_session_force_mute_all() Funktion wird zusammen mit anderen Streams in der Sitzung stummgeschaltet, es sei denn, Sie fügen den Stream (oder die Streams) des Moderators zum Array der ausgeschlossenen Streams hinzu.
Wenn die excluded_streams_len auf 0 gesetzt ist, werden alle Streams in der Sitzung (einschließlich der Streams des Moderators) kein Audio mehr veröffentlichen.
success = otc_session_force_mute_all(session, nullptr, 0);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
Außerdem werden alle Streams, die nach dem Aufruf der otc_session_force_mute_all() Funktion werden mit stummgeschaltetem Ton veröffentlicht. Sie können den Stummschaltzustand einer Sitzung aufheben, indem Sie die Funktion otc_session_disable_force_mute(otc_session *session)() Funktion
success = otc_session_disable_force_mute(session);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
Nachdem Sie die otc_session_disable_force_mute() wird bei neuen Streams, die in der Sitzung veröffentlicht werden, der Ton nicht mehr stummgeschaltet.
Sie können Referenzen erhalten zu otc_stream Instanzen, wenn die on_stream_received() Callback-Funktion des otc_session_callbacks Instanz aufgerufen wird. Der Callback enthält einen Zeiger auf den otc_stream Struktur, die einen Stream repräsentiert. Rufen Sie die otc_stream_get_id() Funktion (Übergabe des Zeigers auf eine otc_stream Instanz), um die Stream-ID zu erhalten. Siehe Erkennung von Streams in einer Sitzung. Sie können auch eine otc_stream Instanz, die den Stream eines Verlegers repräsentiert, durch Aufruf der otc_publisher_get_stream() Funktion, indem Sie die otc_publisher Instanz. Sie können auch eine otc_stream Instanz, die den Stream eines Abonnenten repräsentiert, durch Aufruf der otc_subscriber_get_stream() Funktion, indem Sie die otc_subscriber Instanz.
Wenn der Stream durch eine dieser Funktionen stummgeschaltet wird (oder durch eine Stummschaltung des Stream-Aufrufs in einem anderen Client SDK erzwingen), die on_mute_forced() Callback-Funktion des otc_publisher_callbacks Struktur wird in jedem Client aufgerufen, der einen stummgeschalteten Stream veröffentlicht.
Ähnlich verhält es sich mit der Aufforderung an die otc_session_force_mute_all() Funktion (oder zu einer Stummschaltung aller Anrufe in einem anderen Client SDK erzwingen), die on_mute_forced() Callback-Funktion des otc_session_callbacks Struktur in jedem mit der Sitzung verbundenen Client. und die active Eigenschaft der otc_on_mute_forced_info struct, die an die Funktion übergeben wird, wird auf true.
Und als Antwort auf einen Aufruf an die otc_session_disable_force_mute() Funktion (oder zu einer Stummschaltung in einem anderen Client SDK deaktivieren), die on_mute_forced() Callback-Funktion des otc_publisher_callbacks Struktur wird in jedem mit der Sitzung verbundenen Client aufgerufen, und die active Eigenschaft der otc_on_mute_forced_info Struktur übergeben, die auf false.