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

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

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

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

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

1対1通話

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

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

レスポンスタイプ

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()を呼び出すと、ビデオ通話をリクエストしたユーザーは常に自分のカメラストリームを送ります。他の参加者はそれぞれrequestPeerVideo()を呼び出し、そのストリームを受け取るかどうかを決定する必要があります。

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

ビデオ通話を無効にする

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

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

インターフェースの変更

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

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

関連API

ビデオ通話を有効または無効にすることに関連するAPIは、以下のとおりです。

1対1通話

Enum

メソッド

イベント

グループ通話

メソッド

イベント

関連ドキュメント