モデレーション — macOS
いつ セッションに接続する モデレーター権限を含むトークンを使えば、他のクライアントにセッションを強制的に切断させたり、音声をミュートさせたりすることができます:
モデレーション権限の確認
セッションに接続したら、 otc_session_get_capabilities() otc_session インスタンスを引数として渡す関数。この関数は、otc_session_capabilities インスタンスを返します。の値を確認してください。 force_disconnect または force_mute otc_session_capabilities インスタンスのメンバー:
if (otc_session_get_capabilities(session).force_disconnect) {
// The client can force disconnect. See the next section.
} else {
// The client cannot force disconnect.
}
if (otc_session_get_capabilities(session).force_mute) {
// The client can force mute. See the next section.
} else {
// The client cannot force mute.
}
クライアントの接続を強制的に切断する
モデレーターは、任意のクライアントをセッションから強制的に切断させることができます。クライアントを強制的に切断するには otc_session_force_disconnect() 関数に、otc_session インスタンスへのポインタと、切断対象の otc_connection インスタンスへのポインタを渡します。この関数は、以下のパラメータを受け取ります:
session- otc_session インスタンスへのポインタ。connection— 切断対象の otc_connection インスタンスへのポインタ。
この関数は、エラーか成功のいずれかを示す otc_status インスタンスを返します。
success = otc_session_force_disconnect(session, connection);
if (success != OTC_SUCCESS) {
printf("Could not force disconnect successfully.");
}
への参照を得ることができる。 otc_connection のインスタンスである。 on_connection_created() のコールバック関数である。 otc_session_callbacks インスタンスが呼び出される。コールバックには otc_connection 接続を表す構造体。参照 他のクライアントの接続と切断の検出.また otc_connection インスタンスを作成します。関数を使用する otc_stream_get_connection() を通過する。 otc_stream インスタンスだ。
セッション内のストリームの音声をミュートする
モデレーターは、すべてのクライアントまたは特定のストリームのパブリッシャーに、公開音声のミュートを強制できます。
特定のストリームのパブリッシャーに強制的に音声をミュートさせるには otc_session_force_mute_stream() 関数を呼び出し、otc_session インスタンスへのポインタと、ミュートするストリームのストリーム ID 文字列を渡します。この関数は、以下のパラメータを受け取ります:
session- otc_session インスタンスへのポインタ。stream_id_to_mute- ミュートするストリームのストリームID文字列へのポインタ。
この関数は、エラーか成功のいずれかを示す otc_status インスタンスを返します。
success = otc_session_force_mute_stream(session, stream_id);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
モデレータは、セッション内のすべてのストリーム (オプションのストリーム配列を除く) の公開音声をミュートするように強制することもできます。その場合は otc_session_force_mute_all() 関数である。この関数は以下のパラメータを取る:
session- otc_session インスタンスへのポインタ。excluded_streams_ids- ミュートから除外したいストリームのストリームIDの配列へのポインタ。このパラメータをnullptrに設定すると、すべてのストリームがミュートされます(ローカルクライアントが公開しているストリームも含まれます)。excluded_streams_len- 除外するストリーム配列の長さ。
この関数は、エラーか成功のいずれかを示す otc_status インスタンスを返します:
success = otc_session_force_mute_all(session, streams, stream_count);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
を呼び出すモデレーターによって公開されたストリーム。 otc_session_force_mute_all() 関数は、モデレータのストリーム (または複数のストリーム) を除外ストリーム配列に追加しない限り、 セッション内の他のストリームとともにミュートされます。
もし excluded_streams_len パラメータを0に設定すると、セッション内のすべてのストリーム (モデレータのストリームを含む) が、音声の公開を停止する。
success = otc_session_force_mute_all(session, nullptr, 0);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
また、以下の呼び出しの後に発行されるストリームは、すべて otc_session_force_mute_all() 関数はオーディオをミュートした状態でパブリッシュされます。セッションのミュート状態を解除するには otc_session_disable_force_mute(otc_session *session)() 機能
success = otc_session_disable_force_mute(session);
if (success != OTC_SUCCESS) {
printf("Could not force mute successfully.");
}
を呼び出した後 otc_session_disable_force_mute() 関数を使用すると、セッションに公開された新しいストリームは、音声がミュートされなくなります。
への参照を得ることができる。 otc_stream のインスタンスである。 on_stream_received() のコールバック関数である。 otc_session_callbacks インスタンスが呼び出される。コールバックには otc_stream ストリームを表す構造体。を呼び出す。 otc_stream_get_id() へのポインタを渡す)。 otc_stream インスタンス)でストリームIDを取得する。参照 セッション内のストリームの検出.また otc_stream インスタンスを呼び出すことで、パブリッシャーのストリームを表します。 otc_publisher_get_stream() 関数に渡す。 otc_publisher のインスタンスです。また otc_stream インスタンスを呼び出すことで、サブスクライバーのストリームを表します。 otc_subscriber_get_stream() 関数に渡す。 otc_subscriber インスタンスだ。
これらの関数の結果(あるいは 別の Client SDK で強制ミュートストリーム呼び出しである。 on_mute_forced() のコールバック関数である。 otc_publisher_callbacks 構造体は、ミュートされたストリームを公開する各クライアントで呼び出される。
同様に、次のような呼びかけにも応じた。 otc_session_force_mute_all() 関数(または 別のクライアントSDKですべての呼び出しを強制ミュートするである。 on_mute_forced() のコールバック関数である。 otc_session_callbacks 構造体を持つ。 active プロパティの otc_on_mute_forced_info にセットされる。 true.
という呼びかけに応えた。 otc_session_disable_force_mute() 関数(または 別のクライアントSDKで強制ミュートコールを無効にするである。 on_mute_forced() のコールバック関数である。 otc_publisher_callbacks 構造体は、セッションに接続された各クライアントで呼び出され active プロパティの otc_on_mute_forced_info に設定された false.