モデレーション — React Native

いつ セッションに接続する モデレーター権限を含むトークンを使用すると、他のクライアントをセッションから強制的に切断させたり、ストリームの配信を停止させたり、音声をミュートさせたりすることができます:

モデレーション権限の確認

セッションに接続したら、クライアントがモデレートできるかどうかをチェックできます。

の値を確認してください。 capabilities.forceMute プロパティにこれが trueクライアントはモデレートすることができる:

if (session.capabilities.forceMute) {
    // The client can mute participants.
} else {
    // The client cannot mute.
}

の値を確認してください。 capabilities.forceDisconnect プロパティにこれが trueクライアントはモデレートすることができる:

if (session.capabilities.forceDisconnect) {
    // The client can force participants to disconnect.
} else {
    // The client cannot force participants to disconnect.
}
<a name="force_disconnect" class="doc-target"></a>

クライアントの接続を強制的に切断する

特定のストリームのパブリッシャーに強制的に音声をミュートさせるには forceDisconnect() メソッドに、ミュートしたいクライアントのコネクションIDを渡す:

sessionRef.forceDisconnect('connection-id')
  .then(function() {
    console.log("successfully called.");
  }).catch(function(error) {
    console.log("Error: ", error);
  });

接続IDへの参照を取得するには、 connectionCreated OTSessionコンポーネントのイベントハンドラ。

セッション内のストリームの音声をミュートする

モデレーターは、すべてのクライアントまたは特定のストリームのパブリッシャーに、公開音声のミュートを強制できます。

特定のストリームのパブリッシャーに強制的に音声をミュートさせるには forceMuteStream() OTSession コンポーネントへの参照のメソッドを呼び出し、ミュートしたいストリームのストリーム ID を引数として渡します:

sessionRef.forceMuteStream('stream-id')
  .then(function() {
    console.log("successfully called.");
  }).catch(function(error) {
    console.log("Error: ", error);
  });

について OTSession.forceMuteStream() このメソッドは Promise を返しますが、呼び出しが失敗した場合(たとえば、クライアントにモデレーション権限がない場合など)、その Promise は拒否されます。この文脈において、「成功」とは、メソッドに渡されたオプションが有効であり、ストリームのミュート要求が送信されたことを意味します。ただし、その要求が正常に処理されたことを保証するものではありません。

モデレータは、セッション内のすべてのストリーム (オプションのストリーム配列を除く) の公開音声をミュートするように強制することもできます。その場合は forceMuteAll() Session オブジェクトのメソッドを呼び出し、ミュート対象から除外したいストリームの配列を渡します:

session.forceMuteAll(excludedStreams);

を呼び出すモデレーターによって公開されたストリーム。 forceMuteAll() メソッドは、セッション内の他のストリームとともにミュートされます。 ただし、モデレータのストリーム (または複数のストリーム) を除外ストリーム配列に追加した場合は除きます。

もし excludedStreams パラメータを使用すると、セッション内のすべてのストリーム (モデレータのストリームを含む) が音声の公開を停止する:

session.forceMuteAll();

また、以下の呼び出しの後に発行されるストリームは、すべて forceMuteAll() メソッドを呼び出すと、オーディオがミュートされた状態でパブリッシュされます。セッションのミュート状態を解除するには disableForceMute() メソッドを呼び出す:

session.disableForceMute();

を呼び出した後 OTSession.disableForceMute() メソッドを呼び出すと、セッションに公開された新しいストリームは、音声がミュートされなくなります。

Session オブジェクトがディスパッチを行う際に、ストリーム ID への参照を取得できます sessionConnected イベントと streamCreated のイベントがある。

これらの方法のいずれかによって(あるいは別の Client SDK で強制ミュートストリーム呼び出し)、ミュートされたストリームを公開する各クライアントにおいて、OTPublisher オブジェクトは muteForced イベントを開催する。

同様に、次のような呼びかけにも応じた。 OTSession.forceMuteAll() メソッド(または 別のクライアントSDKですべての呼び出しを強制ミュートする)、そのセッションに接続している各クライアントの OTSession オブジェクトは、 muteForced イベントと active イベント・オブジェクトの true.

という呼びかけに応えた。 OTSession.disableForceMute() メソッド(または 別のクライアントSDKで強制ミュートコールを無効にする), セッションに接続している各クライアントの OTSession オブジェクトは、 muteForced イベント、 そして active イベント・オブジェクトの false.