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

リリースノート

WebPlanetKit 6.0のリリースノートです。

WebPlanetKit 6.0

リリース日:2026-08-03

明確さと一貫性のための公開APIの名称改善

読みやすさ、一貫性、導入のしやすさを向上させるため、いくつかの公開APIの名称を整理しました。

API

変更
  • MakeCallParams data class 1-to-1 call

    PreviousWebPlanetKit 6.0
    var pauseVideoByPageHidden?: booleanvar pauseMyVideoByPageHidden?: boolean
  • VerifyCallParams data class 1-to-1 call

    PreviousWebPlanetKit 6.0
    var pauseVideoByPageHidden?: booleanvar pauseMyVideoByPageHidden?: boolean
  • ConferenceParams data class Group call

    PreviousWebPlanetKit 6.0
    var pauseVideoByPageHidden?: booleanvar pauseMyVideoByPageHidden?: boolean
  • PeerInfo data class Group call

    PreviousWebPlanetKit 6.0
    var videoRequested: booleanvar isVideoRequested: boolean
    var micMuted: booleanvar isMicMuted: boolean
    var vSsrc: numbervar videoSsrc: number
    var dSsrc: numbervar dataSsrc: number
  • DisconnectReason data class 1-to-1 callGroup call

    PreviousWebPlanetKit 6.0
    var strCode: stringvar codeString: string
  • Call class 1-to-1 call

    PreviousWebPlanetKit 6.0
    function waitForVirtualBackgroundInitialization()function waitForVirtualBackgroundReady()
    function setVideoMirror(mirror, videoElements)function setVideoMirror(isMirror, videoElements)
  • Conference class Group call

    PreviousWebPlanetKit 6.0
    function waitForVirtualBackgroundInitialization()function waitForVirtualBackgroundReady()
    function setVideoMirror(mirror, videoElements)function setVideoMirror(isMirror, videoElements)
  • MediaStreamManager class 1-to-1 callGroup call

    PreviousWebPlanetKit 6.0
    function waitForVirtualBackgroundInitialization()function waitForVirtualBackgroundReady()
  • Util class 1-to-1 callGroup call

    PreviousWebPlanetKit 6.0
    function setVideoMirror(mirror, videoElements)function setVideoMirror(isMirror, videoElements)
  • VIDEO_PAUSE_REASON enum 1-to-1 callGroup call

    PreviousWebPlanetKit 6.0
    PLANETKIT_VIDEO_PAUSE_REASON_BY_USERBY_USER
    PLANETKIT_VIDEO_PAUSE_REASON_BY_INTERRUPTBY_INTERRUPT
    PLANETKIT_VIDEO_PAUSE_REASON_UNDEFINEDUNDEFINED
    PLANETKIT_VIDEO_PAUSE_REASON_INTERNALINTERNAL
    PLANETKIT_VIDEO_PAUSE_REASON_ENABLE_VIDEO_RESPONSEENABLE_VIDEO_RESPONSE
    PLANETKIT_VIDEO_PAUSE_REASON_CAMERA_INACTIVECAMERA_INACTIVE
  • KIT_DISCONNECT_REASON enum 1-to-1 callGroup call

    PreviousWebPlanetKit 6.0
    PLANETKIT_DISCONNECT_REASON_NORMALNORMAL
    PLANETKIT_DISCONNECT_REASON_DECLINEDECLINE
    PLANETKIT_DISCONNECT_REASON_CELL_CALLCELL_CALL
    PLANETKIT_DISCONNECT_REASON_INTERNAL_ERRORINTERNAL_ERROR
    PLANETKIT_DISCONNECT_REASON_USER_ERRORUSER_ERROR
    PLANETKIT_DISCONNECT_REASON_INTERNAL_KIT_ERRORINTERNAL_KIT_ERROR
    PLANETKIT_DISCONNECT_REASON_AUDIO_TX_NO_SRCAUDIO_TX_NO_SRC
    PLANETKIT_DISCONNECT_REASON_CANCELCANCEL
    PLANETKIT_DISCONNECT_REASON_BUSYBUSY
    PLANETKIT_DISCONNECT_REASON_NOANSWERNOANSWER
    PLANETKIT_DISCONNECT_REASON_ALREADY_GOT_A_CALLALREADY_GOT_A_CALL
    PLANETKIT_DISCONNECT_REASON_MULTIDEV_IN_USEMULTIDEV_IN_USE
    PLANETKIT_DISCONNECT_REASON_MULTIDEV_ANSWERMULTIDEV_ANSWER
    PLANETKIT_DISCONNECT_REASON_MULTIDEV_DECLINEMULTIDEV_DECLINE
    PLANETKIT_DISCONNECT_REASON_MAX_CALL_TIME_EXCEEDEDMAX_CALL_TIME_EXCEEDED
    PLANETKIT_DISCONNECT_REASON_NETWORK_UNSTABLENETWORK_UNSTABLE
    PLANETKIT_DISCONNECT_REASON_PUSH_ERRORPUSH_ERROR
    PLANETKIT_DISCONNECT_REASON_AUTH_ERRORAUTH_ERROR
    PLANETKIT_DISCONNECT_REASON_RELEASED_CALLRELEASED_CALL
    PLANETKIT_DISCONNECT_REASON_SERVER_INTERNAL_ERRORSERVER_INTERNAL_ERROR
    PLANETKIT_DISCONNECT_REASON_UNAVAILABLE_NETWORKUNAVAILABLE_NETWORK
    PLANETKIT_DISCONNECT_REASON_APP_DESTROYAPP_DESTROY
    PLANETKIT_DISCONNECT_REASON_SYSTEM_SLEEPSYSTEM_SLEEP
    PLANETKIT_DISCONNECT_REASON_SYSTEM_LOGOFFSYSTEM_LOGOFF
    PLANETKIT_DISCONNECT_REASON_MTU_EXCEEDEDMTU_EXCEEDED
    PLANETKIT_DISCONNECT_REASON_ROOM_IS_FULLROOM_IS_FULL
    PLANETKIT_DISCONNECT_REASON_ALONE_KICK_OUTALONE_KICK_OUT
    PLANETKIT_DISCONNECT_REASON_ROOM_NOT_FOUNDROOM_NOT_FOUND
    PLANETKIT_DISCONNECT_REASON_SERVICE_ACCESS_TOKEN_ERRORSERVICE_ACCESS_TOKEN_ERROR
    PLANETKIT_DISCONNECT_REASON_SERVICE_INVALID_IDSERVICE_INVALID_ID
    PLANETKIT_DISCONNECT_REASON_SERVICE_MAINTENANCESERVICE_MAINTENANCE
    PLANETKIT_DISCONNECT_REASON_SERVICE_BUSYSERVICE_BUSY
    PLANETKIT_DISCONNECT_REASON_SERVICE_INTERNAL_ERRORSERVICE_INTERNAL_ERROR
    PLANETKIT_DISCONNECT_REASON_SERVICE_HTTP_ERRORSERVICE_HTTP_ERROR
    PLANETKIT_DISCONNECT_REASON_SERVICE_HTTP_CONNECTION_TIME_OUTSERVICE_HTTP_CONNECTION_TIME_OUT
    PLANETKIT_DISCONNECT_REASON_SERVICE_INCOMPATIBLE_PLANETKIT_VERSERVICE_INCOMPATIBLE_PLANETKIT_VER
    PLANETKIT_DISCONNECT_REASON_SERVICE_TOO_MANY_REQUESTSSERVICE_TOO_MANY_REQUESTS
    PLANETKIT_DISCONNECT_REASON_WEB_RTC_ABORTWEB_RTC_ABORT
    PLANETKIT_DISCONNECT_REASON_WEB_RTC_NOT_ALLOWEDWEB_RTC_NOT_ALLOWED
    PLANETKIT_DISCONNECT_REASON_WEB_RTC_NOT_FOUNDWEB_RTC_NOT_FOUND
    PLANETKIT_DISCONNECT_REASON_WEB_RTC_NOT_READABLEWEB_RTC_NOT_READABLE
    PLANETKIT_DISCONNECT_REASON_WEB_RTC_OVERCONSTRAINEDWEB_RTC_OVERCONSTRAINED
    PLANETKIT_DISCONNECT_REASON_WEB_RTC_SECURITY_ERRORWEB_RTC_SECURITY_ERROR
    PLANETKIT_DISCONNECT_REASON_WEB_RTC_TYPE_ERRORWEB_RTC_TYPE_ERROR
    PLANETKIT_DISCONNECT_REASON_WEB_NO_MEDIA_PACKETWEB_NO_MEDIA_PACKET
    PLANETKIT_DISCONNECT_REASON_WEB_CALL_CONNECT_FAIL_BY_SERVERWEB_CALL_CONNECT_FAIL_BY_SERVER
    PLANETKIT_DISCONNECT_REASON_WEB_CALL_CONNECT_FAIL_BY_CLIENTWEB_CALL_CONNECT_FAIL_BY_CLIENT
    PLANETKIT_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

追加
  • Call class 1-to-1 call

    • function getMyMediaStatus()
  • Conference class Group call

    • function getMyMediaStatus()
  • MakeCallDelegate protocol 1-to-1 call

    • evtMyAudioMuted()
    • evtMyAudioUnmuted()
    • evtMyVideoStatusUpdated(myVideoStatus: MyVideoStatus)
    • evtMyScreenShareStateUpdated(state: MY_SCREEN_SHARE_STATE)
  • VerifyCallDelegate protocol 1-to-1 call

    • evtMyAudioMuted()
    • evtMyAudioUnmuted()
    • evtMyVideoStatusUpdated(myVideoStatus: MyVideoStatus)
    • evtMyScreenShareStateUpdated(state: MY_SCREEN_SHARE_STATE)
  • ConferenceDelegate protocol Group call

    • evtMyAudioMuted()
    • evtMyAudioUnmuted()
    • evtMyVideoStatusUpdated(myVideoStatus: MyVideoStatus)
    • evtMyScreenShareStateUpdated(state: MY_SCREEN_SHARE_STATE)
  • MyMediaStatus data class 1-to-1 callGroup call

  • MyVideoStatus data class 1-to-1 callGroup call

  • MY_SCREEN_SHARE_STATE enum 1-to-1 callGroup call

削除
  • MakeCallDelegate protocol 1-to-1 call

    • evtMyScreenShareStoppedOnBrowser()evtMyScreenShareStateUpdated(state)に置き換えられました
  • VerifyCallDelegate protocol 1-to-1 call

    • evtMyScreenShareStoppedOnBrowser()evtMyScreenShareStateUpdated(state)に置き換えられました
  • ConferenceDelegate protocol Group call

    • evtMyScreenShareStoppedOnBrowser()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

追加
  • Call class 1-to-1 call

    • static function isDocumentPipSupported()
    • function openDocumentPip(options?: DocumentPipOptions)
    • function closeDocumentPip()
    • function getDocumentPipWindow()
    • function getDocumentPipContainer()
  • Conference class Group call

    • static function isDocumentPipSupported()
    • function openDocumentPip(options?: DocumentPipOptions)
    • function closeDocumentPip()
    • function getDocumentPipWindow()
    • function getDocumentPipContainer()
  • MakeCallDelegate protocol 1-to-1 call

    • evtPipOpened(result: DocumentPipResult)
    • evtPipClosed(info: DocumentPipClosedInfo)
  • VerifyCallDelegate protocol 1-to-1 call

    • evtPipOpened(result: DocumentPipResult)
    • evtPipClosed(info: DocumentPipClosedInfo)
  • ConferenceDelegate protocol Group call

    • evtPipOpened(result: DocumentPipResult)
    • evtPipClosed(info: DocumentPipClosedInfo)
  • DocumentPipOptions data class 1-to-1 callGroup call

  • DocumentPipResult data class 1-to-1 callGroup call

  • DocumentPipClosedReason data class 1-to-1 callGroup call

  • DocumentPipClosedInfo data 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

追加
  • Call class 1-to-1 call

    • function isRecordOnCloudEnabled()

サンプルコード

planetKit.verifyCall({
...,
delegate: {
evtVerified: () => {
if (planetKit.isRecordOnCloudEnabled()) {
// Inform the user that the caller has requested cloud recording.
}
},
},
});

音声通話中のピアによるビデオ有効化処理の簡素化

音声通話中にピアがビデオを有効化すると、WebPlanetKitは常にローカルユーザーのビデオを一時停止状態に設定するようになりました。これにより、アプリケーションは通話開始時にPAUSESENDのモードを選択する必要がなくなりました。

responseOnEnableVideoパラメーターとRESPONSE_ENABLE_VIDEO enumは削除されました。対応するdelegateコールバックは、実際の動作を反映するようにevtVideoEnabledByPeerAndMyVideoPaused()に名称が変更されました。

API

変更
  • MakeCallDelegate protocol 1-to-1 call

    PreviousWebPlanetKit 6.0
    evtVideoEnabledByPeer()evtVideoEnabledByPeerAndMyVideoPaused()
  • VerifyCallDelegate protocol 1-to-1 call

    PreviousWebPlanetKit 6.0
    evtVideoEnabledByPeer()evtVideoEnabledByPeerAndMyVideoPaused()
削除
  • MakeCallParams data class 1-to-1 call

    • var responseOnEnableVideo?: RESPONSE_ENABLE_VIDEO
  • VerifyCallParams data class 1-to-1 call

    • var responseOnEnableVideo?: RESPONSE_ENABLE_VIDEO
  • RESPONSE_ENABLE_VIDEO enum 1-to-1 call

マイク/カメラの権限変更をまたいで通話を維持

WebPlanetKitは、通話中にブラウザーのマイクまたはカメラの権限が変更されても通話を継続するようになりました。ユーザーが権限を取り消すと、SDKは該当するメディアトラックを無音のプレースホルダーに自動的に置き換え、通話が切断されないようにします。権限が再度許可されると、SDKは実際のデバイストラックを自動的に復元します。

さらに、権限状態が変更されるたびにアプリケーションに通知する新しいdelegateコールバックが追加されました。

権限状態が統合された通話delegateを通じて配信されるようになったため、5.5.0以降MediaStreamManagerが提供していたsetupDevicePermissionMonitoringcleanupDevicePermissionMonitoringgetDevicePermissionStateメソッドは削除されました。

API

追加
  • MakeCallDelegate protocol 1-to-1 call

    • evtMicrophonePermissionStateUpdated(state: PERMISSION_STATE)
    • evtCameraPermissionStateUpdated(state: PERMISSION_STATE)
  • VerifyCallDelegate protocol 1-to-1 call

    • evtMicrophonePermissionStateUpdated(state: PERMISSION_STATE)
    • evtCameraPermissionStateUpdated(state: PERMISSION_STATE)
  • ConferenceDelegate protocol Group call

    • evtMicrophonePermissionStateUpdated(state: PERMISSION_STATE)
    • evtCameraPermissionStateUpdated(state: PERMISSION_STATE)
  • PERMISSION_STATE enum 1-to-1 callGroup call

削除
  • MediaStreamManager class 1-to-1 callGroup call

    • function 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内の一貫性のため、既存の入力フィールドの名称も変更されました。

  • inputAudioaudioInput
  • inputVideovideoInput

HTMLMediaElement.setSinkId()をサポートしていないSafariでは、audioOutputを設定しても通話に影響しません。SDKはデフォルトのスピーカーを使用し、通話は正常に進行します。

API

追加
  • MediaDeviceId data class 1-to-1 callGroup call

    • var audioOutput: string
変更
  • MediaDeviceId data class 1-to-1 callGroup call

    PreviousWebPlanetKit 6.0
    var inputAudio: stringvar audioInput: string
    var 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

変更
  • Call class 1-to-1 call

    PreviousWebPlanetKit 6.0
    function changeAudioInputDevice('empty')function changeAudioInputDevice('none')
    function changeVideoInputDevice('empty')function changeVideoInputDevice('none')
  • Conference class Group call

    PreviousWebPlanetKit 6.0
    function changeAudioInputDevice('empty')function changeAudioInputDevice('none')
    function changeVideoInputDevice('empty')function changeVideoInputDevice('none')