通話の一時停止
PlanetKitは、通話の一時停止(hold)/再開(unhold)機能を提供します。この機能を使用すると、アプリケーションがメディアストリームの送信と受信を一時停止または再開します。ユーザーが通話を一時停止/再開すると、ピアはユーザーのビデオが一時停止/再開されたことを知らせるイベントを受信します。
通話の一時停止および再開の動作は、通話タイプによって異なります。ここでは、通話を一時停止または再開する方法について説明します。
対応する通話タイプ | SDKの最低バージョン |
---|---|
1対1通話、グループ通話(カンファレンス) | PlanetKit 3.0 |
PlanetKit 5.5以前では、通話の一時停止および再開がカメラの作動に直接的な影響を及ぼすことはありませんでした。しかし、PlanetKit 5.5から通話の一時停止および再開が次のようにカメラを制御します。
- 通話を一時停止すると、PlanetKitがカメラをオフにしてビデオ送信を無効にするため、カメラインジケーター(camera indicator)がオフになります。
- 通話を再開すると、PlanetKitがカメラをオンにしてビデオ送信を有効にするため、カメラインジケーターがオンになります。
PlanetKit 6.0以前では、通話の一時停止および再開がマイクの作動に直接的な影響を及ぼすことはありませんでした。しかし、PlanetKit 6.0から通話の一時停止および再開が次のようにマイクを制御します。
- 通話を一時停止すると、PlanetKitがカメラをオフにしてオーディオ送信を無効にするため、マイクインジケーター(microphone indicator)がオフになります。
- 通話を再開すると、PlanetKitがマイクをオンにしてオーディオ送信を有効にするため、マイクインジケーターがオンになります。
1対1通話
1対1通話を一時停止または再開するには、PlanetKitCall
のhold()
またはunhold()
を使用します。
hold()
を呼び出してアプリケーションのメディアストリームの送受信を一時停止した後、ピアは通信を再開するためにunhold()
が呼び出されるまで待つ必要があります。ピア側のアプリケーションは、PlanetKitが通話パラメーターに設定された一時停止音(hold tone)を再生させます。
下図は、1対1通話の一時停止と再開の流れを示します。
関連API
1対1通話で通話の一時停止および再開に関連するAPIは次のとおりです。
メソッド | 説明 | 関連イベントコールバック |
---|---|---|
hold() | 一時停止ステータスを開始します。一時停止の理由を提供できます。 | peerDidHold |
unhold() | 一時停止ステータスを終了します。 | peerDidUnhold |
ビデオ通話の有効化および無効化
通話中に一時停止をリクエストした端末(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() | 一時停止ステータスを開始します。一時停止の理由を提供できます。 | peersDidHold |
unhold() | 一時停止ステータスを終了します。 | peersDidUnhold |
ビデオ通話の有効化および無効化
通話中に一時停止をリクエストした端末(Client 01)では、ビデオ通話の有効化および無効化をリクエストできません。
画面共有
画面共有中に発表者(画面共有をしているユーザ)のクライアントがhold()
を呼び出すと、発表者とピアに次のようなイベントが発生します。
- 発表者:
myScreenShareDidStopByHold
- 1対1通話ピア:
peerDidStopScreenShare
- グループ通話ピア:ステータスが
DISABLED
であるscreenShareDidUpdate
グループ通話では、画面共有の対象によってscreenShareDidUpdate
イベントを受けるピアが次のように変わります。
- 画面共有が基本ルーム(main room)を対象とする場合、ルームの中のすべてのピアがイベントを受け取ります。
- 画面共有がサブグループを対象とする場合、サブグループに加入したピアのみがイベントを受け取ります。