グループ通話フロー
ここでは、LINE Planetのグループ通話(カンファレンス)フローについて説明します。
下図では、アプリクライアントとアプリサーバーはアプリケーション側に属しており、PlanetKitとLINE Planet CloudはLINE Planet側に属しています。
参加する
アプリクライアントは、アプリケーション通信チャネルを通じてルームに参加する前にルームIDを共有する必要があります。
この例では、Client 01がビデオをオンにしたままグループ通話に参加した後、Client Kがビデオをオフの状態で参加していると仮定します。このような仮定のもと、各クライアントが参加する流れを見てみましょう。
ここでは、3つの関連イベントを見ることができます。
イベント | 発生条件 | 説明 |
---|---|---|
didConnect | joinConference() API呼び出し後 | 完了コールバック |
peerListDidUpdate | 誰かがルームに参加または退出した後 | 新しく参加または退出した参加者のリストを渡す |
peersVideoDidUpdate | - ルームに参加した状態でビデオをオンまたはオフにした後 - ビデオをオンにした状態で参加したとき | ビデオをオンまたはオフにした参加者のリストを渡す |
ピアリストの更新イベント
peerListDidUpdate
は参加者が更新されるたびに発生します。そのため、Client Kが参加すると、Client 01とClient Kは共にこのイベントを受け取ります。
新しい参加者に対してpeerListDidUpdate
が発生すると、他の参加者はその参加者に対してPlanetKitPeerControl
インスタンスを作成し、そのPlanetKitPeerControl
インスタンスを使用して、参加者のビデオを開始または中止したり、参加者のステータスの変更に基づいて参加者のUIを更新したりすることができます。
PlanetKitPeerControl
の使い方について詳しくは、グループビデオ通話のサンプルコードを参照してください。
ピアビデオの更新イベント
peersVideoDidUpdate
は、参加者のビデオストリームが変わるたびに発生します。
上記の例では、Client 01だけがビデオを送信します。Client KはpeersVideoDidUpdate
イベントによって、Client 01がビデオをオンにしたことを知ります。
peersVideoDidUpdate
イベントは、音声通話中にビデオ通話をオンにした場合にも発生する可能性があります。詳しくは、音声通話中のビデオ通話の有効化を参照してください。
イベントの更新間隔
アプリクライアントは、更新間隔内の最新情報に基づきpeerListDidUpdate
とpeersVideoDidUpdate
を受け取ります。結果的にアプリクライアントは、誰かが参加直後に退出する場合など、更新間隔内に発生する急な変更に対するイベントを受信できない場合があります。
LINE Planet Cloudはこれらを内部で更新するスケジューラーを持ち、スケジューリング間隔は現在の参加者数が増えた分だけ長くなります。つまり、参加者数に比例して情報の更新が遅くなることにご注意ください。
ピアビデオのリクエスト
didConnect
イベントが発生した後、アプリクライアントはオーディオストリームを自動で受け取ります。ただし、ビデオストリームは、アプリクライアントが適切なビデオ解像度を定めてPlanetKitPeerControl
のstartVideo()
を呼び出さない限り、LINE Planet Cloudから自動送信されません。
アプリケーションは、PlanetKitConferenceDelegate
のpeersVideoDidUpdate
コールバックやPlanetKitPeerControlDelegate
のdidUpdateVideo
コールバックを通じてビデオストリームを有効にしたのは誰なのかを知ることができます。
PlanetKitがビデオストリーム数に応じて推奨解像度を使用するようにstartVideo()
を呼び出すときに解像度の引数としてrecommended
を使用することをお勧めします。 詳しくは、グループ通話のピアビデオ解像度を参照してください。
退出する
アプリクライアントは、参加者がルームから退出したいときleaveConference()
を呼び出す必要があります。この変化によってルームの参加者数が変わるため、peerListDidUpdate
イベントを発生させます。
ビデオがオンになっている参加者
ビデオがオンになっている参加者がルームから退出すると、他の参加者はpeersVideoDidUpdate
イベントを受け取ります。
- 画面共有ビデオを送信していた参加者がルームから退出すると、状態が
DISABLED
であるscreenShareDidUpdate
が他の参加者に送信されます。 - 状態が
DISABLED
であるpeersVideoDidUpdate
またはscreenShareDidUpdate
イベントは、PlanetKit 4.4以上を使用している参加者だけに送信されます。
ビデオがオフになっている参加者
ビデオがオフになっている参加者がルームから退出する場合、peersVideoDidUpdate
は発生しません。
関連API
グループ通話に関連するAPIは次のとおりです。
クライアント向けAPI
メソッド
イベント
-
didConnect
iOS, macOS -
didDisconnect
iOS, macOS -
peerListDidUpdate
iOS, macOS -
didUpdateVideo
iOS, macOS