モデレーション — Android
いつ セッションに接続する モデレーター権限を含むトークンを使えば、他のクライアントにセッションを強制的に切断させたり、音声をミュートさせたりすることができます:
モデレーション権限の確認
セッションに接続したら、そのクライアントがモデレーターになれるかどうかを確認できます。次の値を確認してください。 canForceDisconnect または canForceMute が返すオブジェクトの Session.getCapabilities().に設定されている場合 trueクライアントはモデレートすることができる:
if (session.getCapabilities().canForceDisconnect) {
// The client can force disconnect. See the next section.
} else {
// The client cannot force disconnect.
}
if (session.getCapabilities().canForceMute) {
// The client can force mute. See the next section.
} else {
// The client cannot force mute.
}
クライアントの接続を強制的に切断する
モデレーターは、任意のクライアントをセッションから強制的に切断させることができます。クライアントを強制的に切断するには forceDisconnect() メソッドに、切断したいクライアントの Connection オブジェクトを渡す:
session.forceDisconnect(connection);
接続オブジェクトへの参照は onConnectionCreated(Session session, Connection connection) のメソッドを使用する。 Session.ConnectionListener オブジェクトが呼び出される。参照 他のクライアントの接続と切断の検出.接続オブジェクトは getConnection() メソッドを呼び出す。
を呼び出すと Session.forceDisconnect() メソッドが失敗すると Session.SessionListener.onError() メソッドが呼び出される。例えば、クライアントがモデレーション権限を持っていない場合 code このメソッドに渡される OpentokError オブジェクトのパラメータは、 SessionUnableToForceDisconnect.この文脈では、成功は、メソッドに渡されたオプションが有効で、接続を切断する リクエストが送信されたことを示す。リクエストが正常に処理されたことを保証するものではありません。
セッション内のストリームの音声をミュートする
モデレーターは、すべてのクライアントまたは特定のストリームのパブリッシャーに、公開音声のミュートを強制できます。
特定のストリームのパブリッシャーに強制的に音声をミュートさせるには forceMuteStream() メソッドに、ミュートするストリームに対応する Stream オブジェクトを渡します:
mSession.forceMuteStream(mStream);
を呼び出すと Session.forceMuteStream() メソッドが失敗すると Session.SessionListener.onError() メソッドが呼び出される。例えば、クライアントがモデレーション権限を持っていない場合 code このメソッドに渡される OpentokError オブジェクトのパラメータは、 SessionUnableToForceMute.この文脈では、成功は、メソッドに渡されたオプションが有効で、ストリームを ミュートするリクエストが送信されたことを示す。これは、リクエストが正常に処理されたことを保証するものではない。
モデレーターは、セッション内のすべてのストリーム(オプションのストリームリストを除く)を強制的にミュートすることもできます。除外するストリームの配列を作成します:
List<com.opentok.android.Stream> mExcludedStreams = new ArrayList<com.opentok.android.Stream>();
mExcludedStreams.add(stream1);
mExcludedStreams.add(stream2);
それから forceMuteAll() メソッドに、除外されたストリーム配列を渡します:
mSession.forceMuteAll(mExcludedStreams);
を呼び出すモデレーターによって公開されたストリーム。 forceMuteAll() メソッドは、モデレーターのストリーム (または複数のストリーム) を除外ストリームリストに追加しない限り、セッション内の他のストリームと一緒にミュートされます。
もし excludedStreams パラメータを使用すると、セッション内のすべてのストリーム (モデレータのストリームを含む) が音声の公開を停止する:
mSession.forceMuteAll();
また、以下の呼び出しの後に発行されるストリームは、すべて forceMuteAll() メソッドを呼び出すと、オーディオがミュートされた状態でパブリッシュされます。セッションのミュート状態を解除するには disableForceMute() メソッドを呼び出します:
mSession.disableForceMute();
を呼び出した後 Session.disableForceMute() メソッドを呼び出すと、セッションに公開された新しいストリームは、音声がミュートされなくなります。
ストリームオブジェクトへの参照は onStreamReceived(Session session, Stream stream) の Session.SessionListener オブジェクトが呼び出される。参照 セッション内のストリームの検出.ストリームオブジェクトは getStream() メソッドを呼び出します。
これらのメソッドの結果(あるいは 別の Client SDK で強制ミュートストリーム呼び出し)、ミュートされたストリームを公開している各クライアントでは onMuteForced(PublisherKit publisher, MuteForcedInfo info) のメソッドを使用する。 PublisherKit.MuteListener オブジェクトが呼び出される。
同様に、次のような呼びかけにも応じた。 Session.forceMuteAll() メソッド(または 別のクライアントSDKですべての呼び出しを強制ミュートする), onMuteForced(Session session, MuteForcedInfo info) のメソッドを使用する。 Session.MuteListener オブジェクトはセッションに接続された各クライアントで呼び出され active 渡されたMuteForcedInfoオブジェクトのプロパティは、以下のように設定されている。 true.
という呼びかけに応えた。 Session.disableForceMute() メソッド(または 別のクライアントSDKで強制ミュートコールを無効にするである。 onMuteForced(Session session, MuteForcedInfo info) のメソッドを使用する。 Session.MuteListener セッションに接続している各クライアントの active 渡されたMuteForcedInfoオブジェクトのプロパティは、以下のように設定されている。 false.