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

グループ通話フロー

ここでは、LINE Planetのグループ通話(カンファレンス)のフローについて説明します。

下図では、アプリクライアントとアプリサーバーはアプリケーション側に属しており、PlanetKitとLINE Planet CloudはLINE Planet側に属しています。

グループ通話参加

グループ通話に参加するには、アプリクライアントがjoinConference()を呼び出す必要があります。ユーザーがグループ通話に参加すると、didConnectイベントが発生します。

Note

グループ通話に参加するには、ルームIDが必要です。したがって、アプリクライアントはグループ通話に参加する前にアプリケーション通信チャンネルを通じてルームIDを共有する必要があります。

下図はグループ通話に参加する流れを示します。ここではClient 01がグループ音声通話に参加した後、Client Kが通話に参加します。

グループ通話参加のシーケンス図
  1. Client 01が通話に参加しようとすると、Client 01のアプリクライアントがjoinConference()を呼び出します。
  2. Planet CloudはGroup Call Eventコールバックを呼び出して、アプリサーバーに新しいグループ通話を通知します。
  3. Client 01のアプリクライアントでdidConnectイベントが発生します。
  4. Client Kが通話に参加しようとすると、Client KのアプリクライアントがjoinConference()を呼び出します。
  5. Planet CloudはGroup Call Eventコールバックを呼び出し、アプリサーバーにグループ通話のステータス変更を通知します。
  6. Client 01のアプリクライアントではpeerListDidUpdateイベントが発生し、Client KのアプリクライアントではdidConnectpeerListDidUpdatepeersVideoDidUpdateイベントが発生します。

ここでは、3つの関連イベントを見ることができます。

イベント発生条件説明
didConnectjoinConference() API呼び出し後完了コールバック
peerListDidUpdate誰かがルームに参加または退出した後新しく参加または退出した参加者のリストを渡す
peersVideoDidUpdate- ルームに参加した状態でビデオをオンまたはオフにした後
- ビデオをオンにした状態で参加したとき
ビデオをオンまたはオフにした参加者のリストを渡す

ピアリストの更新イベント

peerListDidUpdate参加者が更新されるたびに発生します。そのため、Client Kが参加すると、Client 01とClient Kの両方ともこのイベントを受け取ります。このイベントは、新しく参加または退出した参加者のリストを渡します。

新しい参加者に対してpeerListDidUpdateが発生すると、他の参加者はその参加者に対してPlanetKitPeerControlインスタンスを作成し、そのPlanetKitPeerControlインスタンスを使用して、参加者のビデオを開始または中止したり、参加者のステータスの変更に基づいて参加者のUIを更新したりすることができます。

Note

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

ピアビデオの更新イベント

peersVideoDidUpdateは、参加者のビデオストリームが変わるたびに発生します。

上記の例では、Client 01だけがビデオを送信します。Client KはpeersVideoDidUpdateイベントによって、Client 01がビデオをオンにしたことを知ります。

Tip

peersVideoDidUpdateイベントは、音声通話中にビデオ通話をオンにした場合にも発生することがあります。詳しくは、音声通話中のビデオ通話の有効化を参照してください。

イベントの更新間隔

アプリクライアントは、更新間隔内の最新情報に基づきpeerListDidUpdatepeersVideoDidUpdateを受け取ります。その結果として、アプリクライアントは、誰かが参加直後に退出する場合など、更新間隔内で発生した急な変更に対するイベントを受信できない場合があります。

LINE Planet Cloudはこれらを内部で更新するスケジューラーを持ち、スケジューリング間隔は現在の参加者数が増えた分だけ長くなります。つまり、参加者数に比例して情報の更新が遅くなることにご注意ください。

ピアビデオのリクエスト

didConnectイベントが発生した後、アプリクライアントはオーディオストリームを自動で受け取ります。ただし、ビデオストリームは、アプリクライアントが適切なビデオ解像度を定めてPlanetKitPeerControlstartVideo()を呼び出さない限り、LINE Planet Cloudから自動送信されません。

アプリケーションは、PlanetKitConferenceDelegatepeersVideoDidUpdateコールバックやPlanetKitPeerControlDelegatedidUpdateVideoコールバックを通じてビデオストリームを有効にしたのは誰なのかを知ることができます。

グループ通話のピアビデオリクエストのシーケンス図

PlanetKitがビデオストリーム数に応じて推奨解像度を使用するようにstartVideo()を呼び出すときに解像度の引数としてrecommendedを使用することをお勧めします。詳しくは、グループ通話のピアビデオ解像度を参照してください。

Tip

OSのUIフレームワークによって、ピアビデオストリームをレンダリングするために追加のAPIを呼び出す必要がある場合があります。APIリファレンスを確認してください。

グループ通話退出

グループ通話から退出するには、アプリクライアントがleaveConference()を呼び出す必要があります。グループ通話から退出したユーザーのアプリクライアントでは、didDisconnectイベントが発生します。参加者リストが変更されたため、ピアのアプリクライアントではpeerListDidUpdateイベントが発生します。

ビデオがオンになっている参加者

ビデオがオンになっている参加者がルームから退出すると、他の参加者はpeersVideoDidUpdateイベントを受け取ります。

グループ通話のビデオが有効化状態で退出のシーケンス図
  1. Client 01が通話から退出しようとすると、Client 01のアプリクライアントがleaveConference()を呼び出します。
  2. Client KのアプリクライアントではpeersVideoDidUpdateイベントとpeerListDidUpdateイベントが発生し、Client 01のアプリクライアントではdidDisconnectイベントが発生します。
  3. Planet CloudはGroup Call Eventコールバックを呼び出し、アプリサーバーにグループ通話のステータス変更を通知します。
Note
  • 画面共有ビデオを送信していた参加者がルームから退出すると、状態がDISABLEDであるscreenShareDidUpdateが他の参加者に送信されます。
  • 状態がDISABLEDであるpeersVideoDidUpdateまたはscreenShareDidUpdateイベントは、PlanetKit 4.4以上を使用している参加者だけに送信されます。

ビデオがオフになっている参加者

ビデオがオフになっている参加者がルームから退出する場合、peersVideoDidUpdateは発生しません。

グループ通話のビデオが無効化状態で退出のシーケンス図
  1. Client Kが通話から退出しようとすると、Client KのアプリクライアントがleaveConference()を呼び出します。
  2. Client 01のアプリクライアントではpeerListDidUpdateイベントが発生し、Client KのアプリクライアントではdidDisconnectイベントが発生します。
  3. Planet CloudはGroup Call Eventコールバックを呼び出し、アプリサーバーにグループ通話のステータス変更を通知します。

関連API

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

クライアント向けAPI

メソッド

イベント

サーバーAPI

関連サンプルコード