モデレーション — Web
いつ セッションに接続する モデレーター権限を含むトークンを使用すると、他のクライアントをセッションから強制的に切断させたり、ストリームの配信を停止させたり、音声をミュートさせたりすることができます:
モデレーション権限の確認
セッションに接続したら、そのクライアントがモデレーターになれるかどうかを確認できます。次の値を確認してください。 capabilities.forceDisconnect または capabilities.forceUnpublish プロパティの Session オブジェクトを指定します。これが1に設定されていれば、クライアントはモデレートできる:
if (session.capabilities.forceDisconnect == 1) {
// The client can force disconnect. See the next section.
} else {
// The client cannot force disconnect.
}
if (session.capabilities.forceUnpublish == 1) {
// The client can force unpublish. See the next section.
} else {
// The client cannot force unpublish.
}
クライアントの接続を強制的に切断する
モデレーターは、任意のクライアントをセッションから強制的に切断させることができます。クライアントを強制的に切断するには forceDisconnect() メソッドに、切断したいクライアントの Connection オブジェクトを渡す:
session.forceDisconnect(connection);
Connection オブジェクトへの参照は、Session オブジェクトが connectionCreated イベントをご覧ください。参照 他のクライアントの接続と切断の検出.また、任意のストリームの接続オブジェクトを connection プロパティを持つ。
クライアントに対してストリームの配信を強制的に停止させる
モデレーターは、セッションへの配信を行っている配信者を誰でも強制的に配信を停止させることができます。配信を強制的に停止させるには、 forceUnpublish() メソッドに、停止させたいStreamオブジェクトを渡します:
session.forceUnpublish(stream);
セッションオブジェクトが sessionConnected イベントと streamCreated イベントをご覧ください。参照 セッション接続時に利用可能なストリームを取得する そして 新しいストリームが作成されたことを検知する.ストリームオブジェクトは stream プロパティを使用します。
セッション内のストリームの音声をミュートする
モデレーターは、すべてのクライアントまたは特定のストリームのパブリッシャーに、公開音声のミュートを強制できます。
特定のストリームのパブリッシャーに強制的に音声をミュートさせるには forceMuteStream() メソッドに、ミュートしたいストリームを表す Stream オブジェクトを渡します:
session.forceMuteStream(stream)
.then(function() {
console.log("successfully called.");
}).catch(function(error) {
console.log("Error: ", error);
});
について Session.forceMuteStream() メソッドは、呼び出しが失敗した場合に拒否される Promise を返します。例えば、クライアントがモデレーション権限を持っていない場合、Promiseは name エラーオブジェクトの "OT_PERMISSION_DENIED".この文脈では、成功は、メソッドに渡されたオプションが有効で、ストリームを ミュートするリクエストが送信されたことを示す。これは、リクエストが正常に処理されたことを保証するものではない。
モデレータは、セッション内のすべてのストリーム (オプションのストリーム配列を除く) の公開音声をミュートするように強制することもできます。その場合は forceMuteAll() メソッドに、ミューティングから除外したいストリームの配列を渡します:
session.forceMuteAll(excludedStreams);
を呼び出すモデレーターによって公開されたストリーム。 forceMuteAll() メソッドは、セッション内の他のストリームとともにミュートされます。 ただし、モデレータのストリーム (または複数のストリーム) を除外ストリーム配列に追加した場合は除きます。
もし excludedStreams パラメータを使用すると、セッション内のすべてのストリーム (モデレータのストリームを含む) が音声の公開を停止する:
session.forceMuteAll();
また、以下の呼び出しの後に発行されるストリームは、すべて forceMuteAll() メソッドを呼び出すと、オーディオがミュートされた状態でパブリッシュされます。セッションのミュート状態を解除するには disableForceMute() メソッドを呼び出します:
session.disableForceMute();
を呼び出した後 Session.disableForceMute() メソッドを呼び出すと、セッションに公開された新しいストリームは、音声がミュートされなくなります。
セッションオブジェクトが sessionConnected イベントと streamCreated イベントをご覧ください。参照 セッション接続時に利用可能なストリームを取得する そして 新しいストリームが作成されたことを検知する.ストリームオブジェクトは stream プロパティを使用します。
これらのメソッドの結果(あるいは 別の Client SDK で強制ミュートストリーム呼び出し)、各クライアントがミュートされたストリームを公開する場合、Publisher オブジェクトは muteForced イベントを開催する。
同様に、次のような呼びかけにも応じた。 Session.forceMuteAll() メソッド(または 別のクライアントSDKですべての呼び出しを強制ミュートする)、そのセッションに接続している各クライアントのSessionオブジェクトは、 muteForced イベントと active イベント・オブジェクトの true.
という呼びかけに応えた。 Session.disableForceMute() メソッド(または 別のクライアントSDKで強制ミュートコールを無効にする)、そのセッションに接続している各クライアントのSessionオブジェクトは、 muteForced イベントと active イベント・オブジェクトの false.