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

音声通話中のビデオ通話の有効化

音声通話中にビデオ通話に切り替えたり、ビデオ通話中にもう一度音声通話に切り替えたりすることができます。これを、ビデオ通話を有効または無効にすると表現します。

ビデオ通話の有効化をリクエストする手順と、ピアがリクエストに応答する方法は、通話タイプによって異なります。ここでは、通話タイプによってビデオ通話を有効または無効にする方法について説明します。

対応する通話タイプSDKの最低バージョン
1対1通話、グループ通話(カンファレンス)WebPlanetKit 3.1

1対1通話

1対1通話でビデオ通話を有効または無効にするには、Callの次のメソッドを使用します。

メソッド説明関連イベントコールバック
enableVideo()ビデオ通話を有効にすることをリクエストします。evtVideoEnabledByPeer
disableVideo()ビデオ通話を無効にすることをリクエストします。evtVideoDisabledByPeer

リクエスト側のビデオの初期状態

enableVideo()EnableVideoOptionsにブーリアン型のcameraOnを追加し、リクエスト側のビデオの初期状態を設定できます。cameraOnの値によって、ビデオの初期状態は次のように設定されます。

  • cameraOntrueの場合、カメラがオンになり、カメラでキャプチャーしたビデオが転送されます。
  • cameraOnfalseの場合、カメラがオフのままで、ビデオは転送されません。
Note
  • EnableVideoOptionscameraOnのデフォルト値は、trueです。
  • cameraOnfalseに設定すると、リクエスト側のビデオが転送されません。リクエスト側のビデオをキャプチャして転送するには、後でresumeMyVideo()を呼び出す必要があります。
  • WebPlanetKit 5.2以下のバージョンでは、cameraOn機能をvideoEnabledという名前で提供しています。

レスポンスタイプ

1対1通話で相手がビデオ通話をリクエストしたとき、ユーザーのレスポンスタイプは、通話設定のプロセスで設定できます。

レスポンスタイプはRESPONSE_ENABLE_VIDEOにて、以下のように定義されています。

  • PAUSE:相手がビデオ通話を有効にすることをリクエストした際にユーザーのビデオを一時停止します。
  • SEND:相手がビデオ通話を有効にすることをリクエストした際にユーザーのビデオを送信します。

次のようにレスポンスタイプを設定できます。

  • 発信側では、MakeCallParamsresponseOnEnableVideoでレスポンスタイプを設定します。
  • 受信側では、VerifyCallParamsresponseOnEnableVideoでレスポンスタイプを設定します。

ビデオ通話を有効にする

ビデオ通話をリクエストした側は常に自分のカメラストリームを送信しますが、受信者側には2つのシナリオがあります。シナリオはレスポンスタイプの値によって選択されます。

  • シナリオ1:ビデオストリーミングを送信しながら手動で応答する
    • 受信者のレスポンスタイプがPAUSEの場合です。
    • このシナリオでは、ビデオを一時停止した状態でビデオ通話を開始します。 ビデオ通話のリクエストを受けたユーザー(Client 02)が自分のビデオストリームを送信するタイミングを選択できます。
      1対1通話でビデオ通話有効化する手動応答のシーケンス図
    • 関連イベントであるevtPeerVideoPausedevtPeerVideoResumedについて詳しくは、ビデオの一時停止イベントを参照してください。
  • シナリオ2:ビデオストリーミングを送信しながら自動で応答する
    • 受信者のレスポンスタイプがSENDの場合です。
    • このシナリオでは、ビデオ通話のリクエストを受けたユーザー(Client 02)がリクエストを受けたときに自分のビデオストリームを送信します。
      1対1通話でビデオ通話有効化する自動応答のシーケンス図
Tip

あらかじめ受信者のシナリオを定めてから設定することを推奨します。つまり、レスポンスタイプフィールドの値をPAUSEまたはSENDなどの定数に設定して使用してください。

ビデオ通話を無効にする

ビデオ通話の途中でビデオストリーミングを中止したい場合は、disableVideo()を呼び出します。

Note

ネイティブPlanetKitとは異なり、WebPlanetKitは1対1通話でdisableVideo()を呼び出す際にdisableReasonを伝える機能をサポートしていません。

1対1通話でビデオ通話無効化するシーケンス図

リジェクトの流れの例

enableVideo()リクエストの受信者がビデオ通話に参加したくなければ、リクエストをリジェクトできます。ここでレスポンスタイプはPAUSEであると仮定します。このとき、通話の手順は以下のようになるべきです。

1対1通話でビデオ通話リジェクトするシーケンス図

カメラの初期化に失敗した場合

クライアントがevtVideoEnabledByPeerイベントを受信した後カメラの初期化(open)に失敗した場合、クライアントはカメラの初期化を再試行し、初期化に成功した上でresumeMyVideo()を呼び出す必要があります。

グループ通話

グループ通話でビデオ通話を有効または無効にするには、Conferenceの次のメソッドを使用します。

メソッド説明関連イベントコールバック
enableVideo()ビデオ通話を有効にすることをリクエストします。evtPeersVideoUpdated
(state=ENABLED
disableVideo()ビデオ通話を無効にすることをリクエストします。evtPeersVideoUpdated
(state=DISABLED

evtPeersVideoUpdatedではENABLEDDISABLEDPAUSEDの3つのステータスを渡します。

ステータスがPAUSEDの場合、pauseReasonを参照して必要な作業を行う必要があります。詳しくは、ビデオの一時停止イベントを参照してください。

リクエスト側のビデオの初期状態

enableVideo()EnableVideoOptionsにブーリアン型のcameraOnを追加し、リクエスト側のビデオの初期状態を設定できます。cameraOnの値によって、ビデオの初期状態は次のように設定されます。

  • cameraOntrueの場合、カメラがオンになり、カメラでキャプチャーしたビデオが転送されます。
  • cameraOnfalseの場合、カメラがオフのままで、ビデオは転送されません。
Note
  • EnableVideoOptionscameraOnのデフォルト値は、trueです。
  • cameraOnfalseに設定すると、リクエスト側のビデオが転送されません。リクエスト側のビデオをキャプチャして転送するには、後でresumeMyVideo()を呼び出す必要があります。
  • WebPlanetKit 5.2以下のバージョンでは、cameraOn機能をvideoEnabledという名前で提供しています。

ビデオ通話を有効にする

enableVideo()を呼び出すと、ビデオ通話のリクエスト側は常に自分のカメラストリームを送信します。他の参加者はそれぞれrequestPeerVideo()を呼び出して、そのストリームを受信するかどうかを決定する必要があります。

グループ通話でビデオ通話有効化するシーケンス図

ビデオ通話を無効にする

グループビデオ通話の途中でビデオストリームを中止するには、disableVideo()を呼び出します。

グループ通話でビデオ通話無効化するシーケンス図

インターフェースの変更

グループ通話でのビデオ通話の有効化に関するイベントのインターフェースが以下のように変更されました。

SDK versionGroup call
WebPlanetKit 5.0以上evtPeersVideoUpdated
WebPlanetKit 4.0~4.2evtConfVideoUpdated

関連API

ビデオ通話の有効化と無効化に関連するAPIは次のとおりです。

1対1通話

Enum

メソッド

イベント

グループ通話

メソッド

イベント

関連ドキュメント