Moderation – Windows

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

Die Möglichkeit, Streams stummzuschalten, ist Clients vorbehalten, die über ein Token verbunden sind, dem die Moderatorenrolle zugewiesen wurde. Sobald Sie eine Verbindung zu einer Sitzung hergestellt haben, können Sie überprüfen, ob der Client Moderationsrechte besitzt, indem Sie den Wert des CanForceDisconnect oder die CanForceMute Eigenschaft der Session.Capabilities Objekt.

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.
}

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 ForceDisconnect() Methode des Session-Objekts und übergibt das Connection-Objekt für den Client, dessen Verbindung getrennt werden soll:

session.ForceDisconnect(connection);

Sie können Referenzen auf Verbindungsobjekte erhalten, wenn das Session-Objekt die Session.ConnectionCreated Veranstaltung. Siehe Erkennen, wann andere Clients eine Verbindung hergestellt und getrennt haben. Sie können auch ein Verbindungsobjekt aus dem Connection Eigenschaft eines Stream-Objekts.

Wenn der Aufruf der Session.ForceDisconnect() Methode fehlschlägt, sendet das Session-Objekt die Error Ereignis. Wenn der Kunde zum Beispiel keine Moderationsrechte hat, wird der ErrorCode Parameter, der mit dem ErrorEventArgs-Objekt übergeben wird, wird auf SessionUnableToForceDisconnect. In diesem Zusammenhang bedeutet Erfolg, dass die der Methode übergebenen Optionen gültig sind und die Anforderung zum Trennen der Verbindung gesendet wurde. Er garantiert nicht, dass die Anfrage erfolgreich bearbeitet wurde.

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 ForceMuteStream() Methode des Session-Objekts und übergibt das Stream-Objekt, das dem stummzuschaltenden Stream entspricht:

session.ForceMuteStream(stream);

Wenn der Aufruf der Session.ForceMuteStream() Methode fehlschlägt, sendet das Session-Objekt die Error Ereignis. Wenn der Kunde zum Beispiel keine Moderationsrechte hat, wird der ErrorCode Parameter, der mit dem ErrorEventArgs-Objekt übergeben wird, wird auf SessionUnableToForceMute. In diesem Zusammenhang bedeutet Erfolg, dass die der Methode übergebenen Optionen gültig sind und die Anforderung, den Stream stummzuschalten, gesendet wurde. Er garantiert nicht, dass die Anfrage erfolgreich bearbeitet wurde.

Moderatoren können auch erzwingen, dass alle Streams (mit Ausnahme eines optionalen Arrays von Streams) in einer Sitzung stummgeschaltet werden. Rufen Sie die ForceMuteAll() Methode des Session-Objekts und übergibt eine Aufzählung der ausgeschlossenen Streams, die von der Stummschaltung ausgeschlossen werden sollen:

session.ForceMuteAll(excludedStreams);

Ein vom Moderator veröffentlichter Stream, der die ForceMuteAll() Methode 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 Sie die excludedStreams werden alle Streams in der Sitzung (einschließlich der Streams des Moderators) kein Audio mehr veröffentlichen:

session.ForceMuteAll();

Außerdem werden alle Streams, die nach dem Aufruf der Session.ForceMuteAll() Methode werden mit stummgeschaltetem Ton veröffentlicht. Sie können den Stummschaltzustand einer Sitzung aufheben, indem Sie die Methode Session.DisableForceMute():

session.DisableForceMute();

Nachdem Sie die Session.DisableForceMute() werden neue Streams, die in der Sitzung veröffentlicht werden, nicht mehr stummgeschaltet.

Sie können Referenzen auf Stream-Objekte erhalten, wenn das Session-Objekt die StreamReceived Ereignis, das ein Stream-Argument enthält. Siehe Erkennung von Streams in einer Sitzung. Sie können auch ein Stream-Objekt von der Stream Eigenschaft eines Publisher- oder Subscriber-Objekts.

Wenn der Stream als Ergebnis einer dieser Methoden (oder durch eine der folgenden Methoden) stummgeschaltet wird Stummschaltung des Stream-Aufrufs in einem anderen Client SDK erzwingen), in jedem Client, der einen stummgeschalteten Stream veröffentlicht, senden Publisher-Objekte MuteForced Veranstaltungen.

Ähnlich verhält es sich mit der Aufforderung an die Session.ForceMuteAll() Methode (oder zu einer Stummschaltung aller Anrufe in einem anderen Client SDK erzwingen), sendet das Session-Objekt eine MuteForced Ereignis in jedem mit der Sitzung verbundenen Client, und das IsActive Eigenschaft des MuteForcedEventArgs-Objekts wird auf true.