通話の一時停止
PlanetKitは、通話の一時停止(hold)/再開(unhold)機能を提供します。この機能を使用すると、アプリケーションがメディアストリームの送受信を一時停止または再開します。ユーザーが通話を一時停止または再開すると、ピアはユーザーのビデオが一時停止または再開されたことを知らせるイベントを受け取ります。
通話の一時停止および再開の動作は、通話のタイプによって異なります。ここでは、通話を一時停止または再開する方法について説明します。
対応する通話タイプ | SDKの最低バージョン |
---|---|
1対1通話、グループ通話(カンファレンス) | PlanetKit 3.0 |
1対1通話
1対1通話を一時停止または再開するには、PlanetKitCall
のhold()
またはunhold()
を使用します。
hold()
を呼び出してアプリケーションのメディアストリーム送受信を一時停止した後、ピアは通信を再開するためにunhold()
が呼び出されるまで待つ必要があります。ピア側のアプリケーションは、PlanetKitが通話パラメーターに設定された一時停止音(hold tone)を再生させます。
下図は、1対1通話の一時停止と再開の流れを示しています。
関連API
1対1通話で通話の一時停止および再開に関連するAPIは次のとおりです。
メソッド | 説明 | 関連イベントコールバック |
---|---|---|
hold() | 一時停止ステータスを開始します。一時停止の理由を提供できます。 | onPeerHold |
unhold() | 一時停止ステータスを終了します。 | onPeerUnhold |
ビデオ通話の有効化と無効化
通話中に一時停止を要求したデバイス(Client 01)は、ビデオ通話の有効化と無効化を要求できません。
ただし、相手デバイス(Client 02)では、enableVideo()
およびdisableVideo()
メソッドを使用してビデオ通話の有効化と無効化を要求できます。1対1通話では、ビデオ通話の有効化と無効化は常に両側で同時に行われます。したがって、Client 02がビデオ通話の有効化と無効化を要求すると、Client 02だけでなく、Client 01もビデオ通話の有効化と無効化を実行します。その後、以前に一時停止状態であったClient 01デバイスは、一時停止状態を継続します。
グループ通話
グループ通話を一時停止または再開するには、PlanetKitConference
のhold()
またはunhold()
を使用します。
グループ通話では、一時停止の動作が1対1通話と異なります。主に以下のような違いがあります。
- 一時停止音という概念が存在しません。
- 1対1通話では、発信者(ピア)側でメディア送受信が一時停止になりますが、グループ通話では、ピアのメディア送受信がPlanet Cloudによって停止されます。
下図は、グループ通話の一時停止および再開の流れを示しています。
関連API
グループ通話で通話の一時停止および再開に関連するAPIは次のとおりです。
メソッド | 説明 | 関連イベントコールバック |
---|---|---|
hold() | 一時停止ステータスを開始します。一時停止の理由を提供できます。 | onPeersOnHold |
unhold() | 一時停止ステータスを終了します。 | onPeersUnhold |
ビデオ通話の有効化と無効化
通話中に一時停止を要求したデバイス(Client 01)は、ビデオ通話の有効化と無効化を要求できません。
画面共有
画面共有中に発表者(画面共有をしているユーザー)のクライアントがhold()
を呼び出すと、発表者とピアに以下のようなイベントが発生します。
- 発表者:
onMyScreenShareStoppedByHold
- 1対1通話ピア:
onPeerScreenShareStopped
- グループ通話ピア:ステータスが
DISABLED
のonScreenShareUpdated
グループ通話では、画面共有の対象によってonScreenShareUpdated
イベントを受信するピアが以下のように異なります。
- 画面共有がメインルーム(main room)を対象とする場合、ルームのすべてのピアがイベントを受信します。
- 画面共有がサブグループを対象とする場合、サブグループに加入したピアのみイベントを受信します。