本文にスキップする
Version: 5.5

サブグループフロー

ここでは、グループ通話(カンファレンス)内でサブグループを使用する際の流れについて説明します。

参加者がサブグループのメンバーになるためには、サブグループへの加入(subscription)をリクエストする必要があります。加入したサブグループから退会する際には、サブグループにメディアを送信しないように設定してから退会をリクエストしなければなりません。

サブグループに加入したメンバーは、自分のオーディオとビデオの送信先を制御できます。何もしない場合、オーディオとビデオの流れは変わりません。

加入する

サブグループに加入するには、subscribe()を呼び出します。

下図は、サブグループ加入の流れを示したフローチャートです。この例では、Client 01とClient 02という2人の参加者がいると仮定します。その2人はメインルーム(main room)で通信中です。

サブグループ加入シーケンス図

上記の手順で、2人の参加者はサブグループKに加入した後も、メインルームでお互いにコミュニケーションをとることができます。このとき、メインルームにいる他の参加者にメディアが表示されます。

下表は、PlanetKitSubgroupPeerUpdateTypeタイプごとに発生する可能性のあるイベントを示しています。

PUBLICPRIVATENONE
サブグループメンバー(自ら加入したメンバーまたは追加されたメンバー)peerListDidUpdate
peersDidUpdatePublicSubgroup
peerListDidUpdateなし
メンバーではない(未加入の参加者)peersDidUpdatePublicSubgroupなしなし

オーディオ

サブグループに加入したメンバーは、そのサブグループのオーディオストリームを自動で受け取ります。ただし、自分のオーディオストリームをサブグループに変更して転送するには、changeMyAudioDestination()を呼び出す必要があります。

下図は、changeMyAudioDestination()を呼び出す際に、オーディオの流れと受信するオーディオ情報が変わる様子を示しています。ユーザーがメインルームとサブグループから受信するオーディオ情報は、ボックスの形で図に示されています。

グループ通話には3人の参加者Client 01、Client 02、Client 03がいます。そしてClient 01とClient 02は、サブグループKのメンバーです。Client 01とClient 02がサブグループKに加入していますが、サブグループKにオーディオを送信している人はいないため、現在サブグループから受信できるオーディオは存在しません。

サブグループオーディオ送信先変更シーケンス図

自分のオーディオ送信先とメインルームおよびサブグループから受信するオーディオは、以下のとおりです。

  1. Client 01がchangeMyAudioDestination()を呼び出す
    • Client 01
      • オーディオの送信先:メインルーム → サブグループK
      • メインルームで受信したオーディオ:Client 02 + Client 03
      • サブグループKで受信したオーディオ:なし
    • Client 02
      • オーディオの送信先:メインルーム
      • メインルームで受信したオーディオ:Client 03
      • サブグループKで受信したオーディオ:Client 01
    • Client 03
      • オーディオの送信先:メインルーム
      • メインルームで受信したオーディオ:Client 02
  2. Client 02がchangeMyAudioDestination()を呼び出す
    • Client 01
      • オーディオの送信先:サブグループK
      • メインルームで受信したオーディオ:Client 03
      • サブグループKで受信したオーディオ:Client 02
    • Client 02
      • オーディオの送信先:メインルーム → サブグループK
      • メインルームで受信したオーディオ:Client 03
      • サブグループKで受信したオーディオ:Client 01
    • Client 03
      • オーディオの送信先:メインルーム
      • メインルームで受信したオーディオ:なし

ビデオ

サブグループへ加入後には、PlanetKitPeerControlstartVideo()を利用して、どのサブグループからビデオを受信するかを制御できます。

Note

PlanetKitPeerControlの使い方について詳しくは、グループビデオ通話のサンプルコードを参照してください。

startVideo()の使い方については、グループ通話フロー - ピアビデオのリクエストを参照してください。

自分のビデオを送信するサブグループを変更するには、changeMyVideoDestination()を呼び出します。

サブグループビデオ送信先変更シーケンス図

画面共有

プレゼンテーションを開始する方法については、プレゼンテーション - 画面共有を参照してください。サブグループ内でプレゼンテーションを行うときも方法は同じです。

Note
  • サブグループ内の画面共有はPlanetKit 4.1以上のバージョンから対応します。
  • ピアの画面共有ビューで画面共有ビデオを制御するために、PlanetKitPeerControlのメソッドを使用することができます。画面共有ビデオ制御のためにPlanetKitPeerControlを使用する方法について詳しくは、グループ通話画面共有のサンプルコードを参照してください。

加入手続きが完了したら、発表者は適切なサブグループ名を指定してstartMyScreenShare()を呼び出します。参加者はPlanetKitPeerControlstartScreenShare()を呼び出し、発表者の画面共有ビデオを受け取ることができます。changeMyScreenShareDestination()メソッドを利用して、共有画面の送信するサブグループを変更できます。下図を確認してください。

サブグループ画面共有送信先変更シーケンス図
Tip

オーディオやビデオなどのメディアと同様に、画面共有もサブグループから退会する前に共有を中断する必要があります。

退会する

サブグループから退会するには、unsubscribe()を呼び出します。ただし、その前にサブグループに送信するすべてのメディアの送信を中断する必要があります。

Client 01がサブグループKから退会する過程を見てみましょう。ここではプレゼンテーションを行わない前提ですが、プレゼンテーションを行う場合もオーディオやビデオを処理するときと同じように画面共有を処理します。

サブグループ退会シーケンス図

サブグループから退会するために、アプリケーションはメディアの送信先を変更し、unsubscribe()を呼び出す作業を進めます。

  1. Client 01がメディアの送信先を変更する
    • オーディオをメインルームに送信するためにchangeMyAudioDestinationToMainRoom()を呼び出す
    • ビデオをメインルームに送信するためにchangeMyVideoDestinationToMainRoom()を呼び出す
  2. Client 01がunsubscribe()を呼び出して退会する

関連API

サブグループに関連するAPIは次のとおりです。

Enum

  • PlanetKitSubgroupPeerUpdateType iOS, macOS

メソッド

イベント

  • peerListDidUpdate iOS, macOS
  • peersDidUpdatePublicSubgroup iOS, macOS
  • peersVideoDidUpdate iOS, macOS
  • didUpdateVideo iOS, macOS
  • PlanetKitConferenceDelegatescreenShareDidUpdate iOS, macOS
  • PlanetKitPeerControlDelegatedidUpdateScreenShare iOS, macOS

関連ドキュメント

より詳細な情報が記載されているサブグループの基本概念も参照してください。