モデレーション — Windows
いつ セッションに接続する モデレーター権限を含むトークンを使えば、他のクライアントにセッションを強制的に切断させたり、音声をミュートさせたりすることができます:
モデレーション権限の確認
ストリームのミュートを強制する機能は、モデレーターの役割が割り当てられたトークンで接続しているクライアントにのみ利用可能です。セッションに接続したら、以下の値を確認することで、そのクライアントがモデレーター権限を持っているかどうかを確認できます。 CanForceDisconnect または CanForceMute プロパティの Session.Capabilities オブジェクトがある。
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.
}
クライアントの接続を強制的に切断する
モデレーターは、任意のクライアントをセッションから強制的に切断させることができます。クライアントを強制的に切断するには ForceDisconnect() メソッドに、切断したいクライアントの Connection オブジェクトを渡す:
session.ForceDisconnect(connection);
セッションオブジェクトが Session.ConnectionCreated イベントをご覧ください。参照 他のクライアントの接続と切断の検出.接続オブジェクトは Connection プロパティを持つ。
を呼び出すと Session.ForceDisconnect() メソッドが失敗すると、Session オブジェクトは Error イベントが発生します。例えば、クライアントがモデレーション権限を持っていない場合 ErrorCode ErrorEventArgsオブジェクトと一緒に渡されるパラメータは、次のように設定されます。 SessionUnableToForceDisconnect.この文脈では、成功は、メソッドに渡されたオプションが有効で、接続を切断する リクエストが送信されたことを示す。リクエストが正常に処理されたことを保証するものではありません。
セッション内のストリームの音声をミュートする
モデレーターは、すべてのクライアントまたは特定のストリームのパブリッシャーに、公開音声のミュートを強制できます。
特定のストリームのパブリッシャーに強制的に音声をミュートさせるには ForceMuteStream() メソッドに、ミュートするストリームに対応する Stream オブジェクトを渡します:
session.ForceMuteStream(stream);
を呼び出すと Session.ForceMuteStream() メソッドが失敗すると、Session オブジェクトは Error イベントが発生します。例えば、クライアントがモデレーション権限を持っていない場合 ErrorCode ErrorEventArgsオブジェクトと一緒に渡されるパラメータは、次のように設定されます。 SessionUnableToForceMute.この文脈では、成功は、メソッドに渡されたオプションが有効で、ストリームを ミュートするリクエストが送信されたことを示す。これは、リクエストが正常に処理されたことを保証するものではない。
モデレータは、セッション内のすべてのストリーム (オプションのストリーム配列を除く) の公開音声をミュートするように強制することもできます。その場合は ForceMuteAll() メソッドに、ミューティングから除外したい除外ストリームの列挙を渡します:
session.ForceMuteAll(excludedStreams);
を呼び出すモデレーターによって公開されたストリーム。 ForceMuteAll() メソッドは、セッション内の他のストリームとともにミュートされます。 ただし、モデレータのストリーム (または複数のストリーム) を除外ストリーム配列に追加した場合は除きます。
もし excludedStreams パラメータを使用すると、セッション内のすべてのストリーム (モデレータのストリームを含む) が音声の公開を停止する:
session.ForceMuteAll();
また、以下の呼び出しの後に発行されるストリームは、すべて Session.ForceMuteAll() メソッドを呼び出すと、オーディオがミュートされた状態でパブリッシュされます。セッションのミュート状態を解除するには Session.DisableForceMute():
session.DisableForceMute();
を呼び出した後 Session.DisableForceMute() メソッドを呼び出すと、セッションに公開された新しいストリームは、音声がミュートされなくなります。
セッションオブジェクトが StreamReceived イベントのStream引数を含む。参照 セッション内のストリームの検出.ストリームオブジェクトは Stream プロパティを使用します。
これらのメソッドの結果(あるいは 別の Client SDK で強制ミュートストリーム呼び出し)、ミュートされたストリームを発行する各クライアントで、Publisherオブジェクトは以下を送信する。 MuteForced のイベントがある。
同様に、次のような呼びかけにも応じた。 Session.ForceMuteAll() メソッド(または 別のクライアントSDKですべての呼び出しを強制ミュートする)、Sessionオブジェクトは MuteForced セッションに接続している各クライアントの IsActive MuteForcedEventArgsオブジェクトのプロパティを true.