モデレーション — iOS

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

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

セッションに接続したら、そのクライアントがモデレーターになれるかどうかを確認できます。次の値を確認してください。 capabilities.canForceDisconnect または capabilities.canForceMute プロパティの OTSession オブジェクトに設定される。これが YESクライアントはモデレートすることができる:

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

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

モデレーターは、任意のクライアントをセッションから強制的に切断させることができます。クライアントを強制的に切断するには [OTSession forceDisconnect:connection error:error] メソッドに、切断したいクライアントの Connection オブジェクトを渡す:

OTError* error = nil;
[session forceDisconnect:connection error:&error];
if (error) {
  NSLog(@"connect failed with error: (%@)", error);
}

OTStreamオブジェクトへの参照は -session:connectionCreated: メッセージが送信される。参照 他のクライアントの接続と切断の検出.から OTConnection オブジェクトを取得することもできます。 connection OTStreamオブジェクトのプロパティ。

呼び出しが失敗すると error パラメータには OTError オブジェクトが設定されます。例えば、クライアントにモデレーション権限がない場合、error パラメータには code プロパティを OTSessionUnableToForceDisconnect.この文脈では、成功は、メソッドに渡されたオプションが有効で、接続を切断する リクエストが送信されたことを示す。リクエストが正常に処理されたことを保証するものではありません。

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

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

特定のストリームのパブリッシャーに強制的に音声をミュートさせるには [OTSession forceMuteStream:options:error:] メソッドに、ミュートするストリームに対応するOTStreamオブジェクトを渡す:

OTError* error = nil;
[session forceMuteStream:stream error:&error];
if (error) {
  NSLog(@"forceMuteStream failed with error: (%@)", error);
}

呼び出しが失敗すると error パラメータには OTError オブジェクトが設定されます。例えば、クライアントにモデレーション権限がない場合、error パラメータには code プロパティを OTSessionUnableToForceMute.この文脈では、成功は、メソッドに渡されたオプションが有効で、ストリームを ミュートするリクエストが送信されたことを示す。これは、リクエストが正常に処理されたことを保証するものではない。

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

OTError* error = nil;
[session forceMuteAll:excludedStreams error:&error];
if (error) {
  NSLog(@"forceMuteAll failed with error: (%@)", error);
}

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

を設定した場合 excludedStreams パラメータを nilこの場合、セッション内のすべてのストリーム(モデレーターのストリームを含む)は音声の公開を停止します:

OTError* error = nil;
[session forceMuteAll:nil error:&error];
if (error) {
  NSLog(@"forceMuteAll failed with error: (%@)", error);
}

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

OTError* error = nil;
[session disableForceMute: error:&error];
if (error) {
  NSLog(@"forceMuteAll failed with error: (%@)", error);
}

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

OTStreamオブジェクトへの参照は [OTSessionDelegate:session:streamCreated:] メッセージが送信される。参照 セッション内のストリームの検出.から OTStream オブジェクトを取得することもできます。 stream OTPublisher または OTSubscriber オブジェクトのプロパティ。

これらのメソッドの結果(あるいは 別の Client SDK で強制ミュートストリーム呼び出しである。 [OTPublisherKitDelegate publisher:muteForced:] メッセージが送信される。

同様に、次のような呼びかけにも応じた。 [OTSession forceMuteAll:excludedStreams:error:] メソッド(または 別のクライアントSDKですべての呼び出しを強制ミュートする), [OTSessionDelegate session:muteForced:info] メッセージはセッションに接続された各クライアントで送信される。 active として渡された OTMuteForcedInfo オブジェクトのプロパティ。 info パラメータが YES.

という呼びかけに応えた。 [OTSession disableForceMute:error:] メソッド(または 別のクライアントSDKで強制ミュートコールを無効にするである。 [OTSessionDelegate session:muteForced:info] メッセージはセッションに接続された各クライアントで送信される。 active として渡された OTMuteForcedInfo オブジェクトのプロパティ。 info パラメータが NO.