サブグループの例:複数のサブグループ
ここでは、1つのグループ通話(カンファレンス)に複数のサブグループが存在する場合の例を示します。どのように動作するのか見てみましょう。
要求事項
この例の要求事項は、次のとおりです。
- ルーム内に複数のサブグループがある
- 参加者はルームに入った後、1つのサブグループを選択できる
- 参加者のサブグループ活動を監視する隠しノードが1つある
アプリケーションの設計
この例では、アプリケーションを以下のように設計しています。
-
使用できるサブグループとメディアタイプを定義します。
サブグループ 通信タイプ サブグループ名 STUDY オーディオおよびビデオ study
TRIP オーディオ trip
WORKOUT オーディオおよびビデオ workout
サブグループ名は、PlanetKit APIが使用する値です。この値は一意でなければならず、NULL文字を含む長さが16バイト未満でなければなりません。
ここでは、すべての参加者がすでに上記のサブグループのリストを知っていると仮定します。
-
マスターと参加者を設定します。
- マスターはすべてのサブグループに加入します。
- 参加者は興味のある1つのサブグループに加入します。
-
peerUpdateプロパティ値をPRIVATEに設定します。
- サブグループに加入したマスターとメンバーは、
peerListDidUpdate
を利用して誰がこのサブグループに加入したかを知ることができます。
- サブグループに加入したマスターとメンバーは、
-
videoUpdateプロパティ値をTRUEに設定します。
- ビデオストリームを使用できます。
トポロジー
PlanetKit APIの流れ
次のような状況でP1という参加者がSTUDYサブグループに加入する際のPlanetKit API呼び出しの流れについて説明します。
- TRIPサブグループ
- T1、T2が加入およびメディア制御完了
- WORKOUTサブグループ
- W1、W2が加入およびメディア制御完了
- STUDYサブグループ
- S1のみ加入
- マスター(M)はすべての参加者を監視
- オーディオをミュートにし、ビデオをオフにする
- すべてのサブグループの音声通話を聞く
- STUDYとWORKOUTサブグループのビデオを見る
- P1はオーディオをミュートしたまま参加
P1は以下のようにSTUDYサブグループメンバーと通信します。
- P1がSTUDYサブグループに加入します。
- サブグループのメンバー(マスターを含む)は通知によってこの情報を知る
- P1は、通知によってS1がビデオストリームを送信していることを知る
- STUDYサブグループのオーディオストリームがP1に自動送信される
- P1がミュートを解除し、STUDYサブグループで発言します。
- P1のオーディオがSTUDYサブグループに送信される
- P1がSTUDYサブグループにビデオを送信します。
- サブグループメンバーは、通知によってP1がたった今ビデオをオンにしたことを知る
- サブグループメンバーが、P1のビデオの受信をリクエストする