リリースノート
WebPlanetKit 6.0のリリースノートです。
WebPlanetKit 6.0
リリース日:2026-08-03
明確さと一貫性のための公開APIの名称改善
読みやすさ、一貫性、導入のしやすさを向上させるため、いくつかの公開APIの名称を整理しました。
API
変更
-
MakeCallParamsdata class 1-to-1 callPrevious WebPlanetKit 6.0 var pauseVideoByPageHidden?: booleanvar pauseMyVideoByPageHidden?: boolean -
VerifyCallParamsdata class 1-to-1 callPrevious WebPlanetKit 6.0 var pauseVideoByPageHidden?: booleanvar pauseMyVideoByPageHidden?: boolean -
ConferenceParamsdata class Group callPrevious WebPlanetKit 6.0 var pauseVideoByPageHidden?: booleanvar pauseMyVideoByPageHidden?: boolean -
PeerInfodata class Group callPrevious WebPlanetKit 6.0 var videoRequested: booleanvar isVideoRequested: booleanvar micMuted: booleanvar isMicMuted: booleanvar vSsrc: numbervar videoSsrc: numbervar dSsrc: numbervar dataSsrc: number -
DisconnectReasondata class 1-to-1 callGroup callPrevious WebPlanetKit 6.0 var strCode: stringvar codeString: string -
Callclass 1-to-1 callPrevious WebPlanetKit 6.0 function waitForVirtualBackgroundInitialization()function waitForVirtualBackgroundReady()function setVideoMirror(mirror, videoElements)function setVideoMirror(isMirror, videoElements) -
Conferenceclass Group callPrevious WebPlanetKit 6.0 function waitForVirtualBackgroundInitialization()function waitForVirtualBackgroundReady()function setVideoMirror(mirror, videoElements)function setVideoMirror(isMirror, videoElements) -
MediaStreamManagerclass 1-to-1 callGroup callPrevious WebPlanetKit 6.0 function waitForVirtualBackgroundInitialization()function waitForVirtualBackgroundReady() -
Utilclass 1-to-1 callGroup callPrevious WebPlanetKit 6.0 function setVideoMirror(mirror, videoElements)function setVideoMirror(isMirror, videoElements) -
VIDEO_PAUSE_REASONenum 1-to-1 callGroup callPrevious WebPlanetKit 6.0 PLANETKIT_VIDEO_PAUSE_REASON_BY_USERBY_USERPLANETKIT_VIDEO_PAUSE_REASON_BY_INTERRUPTBY_INTERRUPTPLANETKIT_VIDEO_PAUSE_REASON_UNDEFINEDUNDEFINEDPLANETKIT_VIDEO_PAUSE_REASON_INTERNALINTERNALPLANETKIT_VIDEO_PAUSE_REASON_ENABLE_VIDEO_RESPONSEENABLE_VIDEO_RESPONSEPLANETKIT_VIDEO_PAUSE_REASON_CAMERA_INACTIVECAMERA_INACTIVE -
KIT_DISCONNECT_REASONenum 1-to-1 callGroup callPrevious WebPlanetKit 6.0 PLANETKIT_DISCONNECT_REASON_NORMALNORMALPLANETKIT_DISCONNECT_REASON_DECLINEDECLINEPLANETKIT_DISCONNECT_REASON_CELL_CALLCELL_CALLPLANETKIT_DISCONNECT_REASON_INTERNAL_ERRORINTERNAL_ERRORPLANETKIT_DISCONNECT_REASON_USER_ERRORUSER_ERRORPLANETKIT_DISCONNECT_REASON_INTERNAL_KIT_ERRORINTERNAL_KIT_ERRORPLANETKIT_DISCONNECT_REASON_AUDIO_TX_NO_SRCAUDIO_TX_NO_SRCPLANETKIT_DISCONNECT_REASON_CANCELCANCELPLANETKIT_DISCONNECT_REASON_BUSYBUSYPLANETKIT_DISCONNECT_REASON_NOANSWERNOANSWERPLANETKIT_DISCONNECT_REASON_ALREADY_GOT_A_CALLALREADY_GOT_A_CALLPLANETKIT_DISCONNECT_REASON_MULTIDEV_IN_USEMULTIDEV_IN_USEPLANETKIT_DISCONNECT_REASON_MULTIDEV_ANSWERMULTIDEV_ANSWERPLANETKIT_DISCONNECT_REASON_MULTIDEV_DECLINEMULTIDEV_DECLINEPLANETKIT_DISCONNECT_REASON_MAX_CALL_TIME_EXCEEDEDMAX_CALL_TIME_EXCEEDEDPLANETKIT_DISCONNECT_REASON_NETWORK_UNSTABLENETWORK_UNSTABLEPLANETKIT_DISCONNECT_REASON_PUSH_ERRORPUSH_ERRORPLANETKIT_DISCONNECT_REASON_AUTH_ERRORAUTH_ERRORPLANETKIT_DISCONNECT_REASON_RELEASED_CALLRELEASED_CALLPLANETKIT_DISCONNECT_REASON_SERVER_INTERNAL_ERRORSERVER_INTERNAL_ERRORPLANETKIT_DISCONNECT_REASON_UNAVAILABLE_NETWORKUNAVAILABLE_NETWORKPLANETKIT_DISCONNECT_REASON_APP_DESTROYAPP_DESTROYPLANETKIT_DISCONNECT_REASON_SYSTEM_SLEEPSYSTEM_SLEEPPLANETKIT_DISCONNECT_REASON_SYSTEM_LOGOFFSYSTEM_LOGOFFPLANETKIT_DISCONNECT_REASON_MTU_EXCEEDEDMTU_EXCEEDEDPLANETKIT_DISCONNECT_REASON_ROOM_IS_FULLROOM_IS_FULLPLANETKIT_DISCONNECT_REASON_ALONE_KICK_OUTALONE_KICK_OUTPLANETKIT_DISCONNECT_REASON_ROOM_NOT_FOUNDROOM_NOT_FOUNDPLANETKIT_DISCONNECT_REASON_SERVICE_ACCESS_TOKEN_ERRORSERVICE_ACCESS_TOKEN_ERRORPLANETKIT_DISCONNECT_REASON_SERVICE_INVALID_IDSERVICE_INVALID_IDPLANETKIT_DISCONNECT_REASON_SERVICE_MAINTENANCESERVICE_MAINTENANCEPLANETKIT_DISCONNECT_REASON_SERVICE_BUSYSERVICE_BUSYPLANETKIT_DISCONNECT_REASON_SERVICE_INTERNAL_ERRORSERVICE_INTERNAL_ERRORPLANETKIT_DISCONNECT_REASON_SERVICE_HTTP_ERRORSERVICE_HTTP_ERRORPLANETKIT_DISCONNECT_REASON_SERVICE_HTTP_CONNECTION_TIME_OUTSERVICE_HTTP_CONNECTION_TIME_OUTPLANETKIT_DISCONNECT_REASON_SERVICE_INCOMPATIBLE_PLANETKIT_VERSERVICE_INCOMPATIBLE_PLANETKIT_VERPLANETKIT_DISCONNECT_REASON_SERVICE_TOO_MANY_REQUESTSSERVICE_TOO_MANY_REQUESTSPLANETKIT_DISCONNECT_REASON_WEB_RTC_ABORTWEB_RTC_ABORTPLANETKIT_DISCONNECT_REASON_WEB_RTC_NOT_ALLOWEDWEB_RTC_NOT_ALLOWEDPLANETKIT_DISCONNECT_REASON_WEB_RTC_NOT_FOUNDWEB_RTC_NOT_FOUNDPLANETKIT_DISCONNECT_REASON_WEB_RTC_NOT_READABLEWEB_RTC_NOT_READABLEPLANETKIT_DISCONNECT_REASON_WEB_RTC_OVERCONSTRAINEDWEB_RTC_OVERCONSTRAINEDPLANETKIT_DISCONNECT_REASON_WEB_RTC_SECURITY_ERRORWEB_RTC_SECURITY_ERRORPLANETKIT_DISCONNECT_REASON_WEB_RTC_TYPE_ERRORWEB_RTC_TYPE_ERRORPLANETKIT_DISCONNECT_REASON_WEB_NO_MEDIA_PACKETWEB_NO_MEDIA_PACKETPLANETKIT_DISCONNECT_REASON_WEB_CALL_CONNECT_FAIL_BY_SERVERWEB_CALL_CONNECT_FAIL_BY_SERVERPLANETKIT_DISCONNECT_REASON_WEB_CALL_CONNECT_FAIL_BY_CLIENTWEB_CALL_CONNECT_FAIL_BY_CLIENTPLANETKIT_DISCONNECT_REASON_WEB_SIGNALING_UNEXPECTED_DISCONNECTEDWEB_SIGNALING_UNEXPECTED_DISCONNECTED
micOnがfalseの場合にマイクへのアクセスをスキップ
micOn: falseで通話を開始すると、通話開始時にマイクへアクセスしたりマイク権限を要求したりしなくなりました。マイクには、通話中にユーザーがミュートを解除したときにのみアクセスします。権限が必要な場合は、そのタイミングでブラウザーの権限リクエストが表示されます。
MyMediaStatusスナップショットAPIおよびメディアdelegateコールバックの追加
ローカルユーザーの現在の音声ミュート、ビデオ、画面共有の状態を返す同期スナップショットAPIを追加しました。これにより、現在の状態のみが必要な場合(例:evtConnected直後に通話UIをレンダリングする場合)、アプリケーションは個々のイベントからこれらの値を追跡する必要がなくなりました。
スナップショットAPIに加えて、ローカルユーザーの音声ミュート状態、ビデオ状態、画面共有状態が変更されるたびにアプリケーションに通知する4つのdelegateコールバックを追加しました。これらのコールバックは、スナップショットAPIとともに、ローカルメディア状態を読み取り、購読するための一貫した方法を提供します。既存のevtMyScreenShareStoppedOnBrowserコールバックは削除されました。そのケースおよびその他すべての画面共有状態の遷移をカバーするevtMyScreenShareStateUpdatedを代わりに使用してください。
API
追加
-
Callclass 1-to-1 callfunction getMyMediaStatus()
-
Conferenceclass Group callfunction getMyMediaStatus()
-
MakeCallDelegateprotocol 1-to-1 callevtMyAudioMuted()evtMyAudioUnmuted()evtMyVideoStatusUpdated(myVideoStatus: MyVideoStatus)evtMyScreenShareStateUpdated(state: MY_SCREEN_SHARE_STATE)
-
VerifyCallDelegateprotocol 1-to-1 callevtMyAudioMuted()evtMyAudioUnmuted()evtMyVideoStatusUpdated(myVideoStatus: MyVideoStatus)evtMyScreenShareStateUpdated(state: MY_SCREEN_SHARE_STATE)
-
ConferenceDelegateprotocol Group callevtMyAudioMuted()evtMyAudioUnmuted()evtMyVideoStatusUpdated(myVideoStatus: MyVideoStatus)evtMyScreenShareStateUpdated(state: MY_SCREEN_SHARE_STATE)
-
MyMediaStatusdata class 1-to-1 callGroup call -
MyVideoStatusdata class 1-to-1 callGroup call -
MY_SCREEN_SHARE_STATEenum 1-to-1 callGroup call
削除
-
MakeCallDelegateprotocol 1-to-1 callevtMyScreenShareStoppedOnBrowser()—evtMyScreenShareStateUpdated(state)に置き換えられました
-
VerifyCallDelegateprotocol 1-to-1 callevtMyScreenShareStoppedOnBrowser()—evtMyScreenShareStateUpdated(state)に置き換えられました
-
ConferenceDelegateprotocol Group callevtMyScreenShareStoppedOnBrowser()—evtMyScreenShareStateUpdated(state)に置き換えられました
サンプルコード
ローカルユーザーの現在のメディア状態を読み取る
const status = planetKit.getMyMediaStatus();
if (status) {
console.log("Mic muted:", status.isMyAudioMuted);
console.log("Video state:", status.myVideoStatus.state);
console.log("Screen share state:", status.screenShareState);
}
Document Picture-in-Picture APIの追加
ローカルユーザーが通話UI全体を独立したフローティングブラウザーウィンドウに切り離せるDocument Picture-in-Picture機能を追加しました。アプリケーションは、複数のビデオ要素、コントロール、レイアウトを含むカスタムHTMLをPiPウィンドウ内にレンダリングできます。
SDKは空のコンテナ要素でPiPウィンドウを作成し、アプリケーションはそのコンテナ内に通話UIをレンダリングします。PiPウィンドウは、通話が終了したとき、ユーザーがPiPウィンドウを閉じたとき、またはcloseDocumentPip()が呼び出されたときに自動的に閉じられます。
API
追加
-
Callclass 1-to-1 callstatic function isDocumentPipSupported()function openDocumentPip(options?: DocumentPipOptions)function closeDocumentPip()function getDocumentPipWindow()function getDocumentPipContainer()
-
Conferenceclass Group callstatic function isDocumentPipSupported()function openDocumentPip(options?: DocumentPipOptions)function closeDocumentPip()function getDocumentPipWindow()function getDocumentPipContainer()
-
MakeCallDelegateprotocol 1-to-1 callevtPipOpened(result: DocumentPipResult)evtPipClosed(info: DocumentPipClosedInfo)
-
VerifyCallDelegateprotocol 1-to-1 callevtPipOpened(result: DocumentPipResult)evtPipClosed(info: DocumentPipClosedInfo)
-
ConferenceDelegateprotocol Group callevtPipOpened(result: DocumentPipResult)evtPipClosed(info: DocumentPipClosedInfo)
-
DocumentPipOptionsdata class 1-to-1 callGroup call -
DocumentPipResultdata class 1-to-1 callGroup call -
DocumentPipClosedReasondata class 1-to-1 callGroup call -
DocumentPipClosedInfodata class 1-to-1 callGroup call
サンプルコード
ブラウザーのenterpictureinpictureメディアセッションアクションに応じてDocument PiPを開く
navigator.mediaSession.setActionHandler("enterpictureinpicture", async () => {
const { pipWindow, container } = await planetKit.openDocumentPip();
const video = pipWindow.document.createElement("video");
video.srcObject = planetKit.getMyMediaStream();
video.autoplay = true;
container.appendChild(video);
});
着信通話でのisRecordOnCloudEnabled()の提供
1対1通話で、着信者が通話を受ける前に、発信者がクラウドレコーディングをリクエストしたかどうかを確認できるAPIを追加しました。この値はverifyCall中にccParamから解析され、通常は通話を受けるかどうかを決定する前にevtVerifiedコールバック内で確認します。
接続中の通話における実際のレコーディング有効化状態は、既存のisRecordOnCloudActivated() APIを通じて引き続き確認できます。
API
追加
-
Callclass 1-to-1 callfunction isRecordOnCloudEnabled()
サンプルコード
planetKit.verifyCall({
...,
delegate: {
evtVerified: () => {
if (planetKit.isRecordOnCloudEnabled()) {
// Inform the user that the caller has requested cloud recording.
}
},
},
});
音声通話中のピアによるビデオ有効化処理の簡素化
音声通話中にピアがビデオを有効化すると、WebPlanetKitは常にローカルユーザーのビデオを一時停止状態に設定するようになりました。これにより、アプリケーションは通話開始時にPAUSEとSENDのモードを選択する必要がなくなりました。
responseOnEnableVideoパラメーターとRESPONSE_ENABLE_VIDEO enumは削除されました。対応するdelegateコールバックは、実際の動作を反映するようにevtVideoEnabledByPeerAndMyVideoPaused()に名称が変更されました。
API
変更
-
MakeCallDelegateprotocol 1-to-1 callPrevious WebPlanetKit 6.0 evtVideoEnabledByPeer()evtVideoEnabledByPeerAndMyVideoPaused() -
VerifyCallDelegateprotocol 1-to-1 callPrevious WebPlanetKit 6.0 evtVideoEnabledByPeer()evtVideoEnabledByPeerAndMyVideoPaused()
削除
-
MakeCallParamsdata class 1-to-1 callvar responseOnEnableVideo?: RESPONSE_ENABLE_VIDEO
-
VerifyCallParamsdata class 1-to-1 callvar responseOnEnableVideo?: RESPONSE_ENABLE_VIDEO
-
RESPONSE_ENABLE_VIDEOenum 1-to-1 call
マイク/カメラの権限変更をまたいで通話を維持
WebPlanetKitは、通話中にブラウザーのマイクまたはカメラの権限が変更されても通話を継続するようになりました。ユーザーが権限を取り消すと、SDKは該当するメディアトラックを無音のプレースホルダーに自動的に置き換え、通話が切断されないようにします。権限が再度許可されると、SDKは実際のデバイストラックを自動的に復元します。
さらに、権限状態が変更されるたびにアプリケーションに通知する新しいdelegateコールバックが追加されました。
権限状態が統合された通話delegateを通じて配信されるようになったため、5.5.0以降MediaStreamManagerが提供していたsetupDevicePermissionMonitoring、cleanupDevicePermissionMonitoring、getDevicePermissionStateメソッドは削除されました。
API
追加
-
MakeCallDelegateprotocol 1-to-1 callevtMicrophonePermissionStateUpdated(state: PERMISSION_STATE)evtCameraPermissionStateUpdated(state: PERMISSION_STATE)
-
VerifyCallDelegateprotocol 1-to-1 callevtMicrophonePermissionStateUpdated(state: PERMISSION_STATE)evtCameraPermissionStateUpdated(state: PERMISSION_STATE)
-
ConferenceDelegateprotocol Group callevtMicrophonePermissionStateUpdated(state: PERMISSION_STATE)evtCameraPermissionStateUpdated(state: PERMISSION_STATE)
-
PERMISSION_STATEenum 1-to-1 callGroup call
削除
-
MediaStreamManagerclass 1-to-1 callGroup callfunction setupDevicePermissionMonitoring(onPermissionUpdate)function cleanupDevicePermissionMonitoring()function getDevicePermissionState(deviceType)
サンプルコード
マイクおよびカメラの権限変更を購読する
planetKit.makeCall({
...,
delegate: {
evtMicrophonePermissionStateUpdated: (state) => {
if (state === PERMISSION_STATE.DENIED) {
// Show a banner asking the user to restore microphone permission.
}
},
evtCameraPermissionStateUpdated: (state) => {
if (state === PERMISSION_STATE.DENIED) {
// Show a banner asking the user to restore camera permission.
}
},
},
});
MediaDeviceId.audioOutputによる初期スピーカーの指定サポート
通話開始時に初期の音声出力(スピーカー)デバイスを指定する機能を追加しました。従来は、アプリケーションが通話の接続を待ってからchangeAudioOutputDevice()を呼び出して特定のスピーカーを選択する必要がありました。既存のaudioInputおよびvideoInputフィールドとともに、MediaDeviceId.audioOutputを通じて通話開始時にスピーカーを設定できるようになりました。
このtypedef内の一貫性のため、既存の入力フィールドの名称も変更されました。
inputAudio→audioInputinputVideo→videoInput
HTMLMediaElement.setSinkId()をサポートしていないSafariでは、audioOutputを設定しても通話に影響しません。SDKはデフォルトのスピーカーを使用し、通話は正常に進行します。
API
追加
-
MediaDeviceIddata class 1-to-1 callGroup callvar audioOutput: string
変更
-
MediaDeviceIddata class 1-to-1 callGroup callPrevious WebPlanetKit 6.0 var inputAudio: stringvar audioInput: stringvar inputVideo: stringvar videoInput: string
サンプルコード
通話開始時に初期のスピーカー、マイク、カメラを設定する
const audioInputs = mediaStreamManager.getAudioInputDevices();
const videoInputs = mediaStreamManager.getVideoInputDevices();
const audioOutputs = mediaStreamManager.getAudioOutputDevices();
planetKit.makeCall({
...,
mediaDeviceId: {
audioInput: audioInputs[0].deviceId,
videoInput: videoInputs[0].deviceId,
audioOutput: audioOutputs[0].deviceId,
},
});
入力デバイスのセンチネル値'empty'を'none'に変更
changeAudioInputDevice()とchangeVideoInputDevice()は、「デバイスなし」の値(ユーザーにマイクやカメラがない場合に使用される無音のプレースホルダー)として'none'を受け取るようになりました。'empty'を使用しているアプリケーションは'none'に更新する必要があります。動作は変更されず、アクティブなトラックが無音のプレースホルダーに置き換えられます。
API
変更
-
Callclass 1-to-1 callPrevious WebPlanetKit 6.0 function changeAudioInputDevice('empty')function changeAudioInputDevice('none')function changeVideoInputDevice('empty')function changeVideoInputDevice('none') -
Conferenceclass Group callPrevious WebPlanetKit 6.0 function changeAudioInputDevice('empty')function changeAudioInputDevice('none')function changeVideoInputDevice('empty')function changeVideoInputDevice('none')