본문으로 건너뛰기

WebPlanetKit 4.2에서 5.3으로 마이그레이션하기

WebPlanetKit 4.2에서 WebPlanetKit 5.3으로 마이그레이션하기 위한 절차와 고려 사항을 상세히 설명합니다.

요구사항

SDK 설치

  • 5.2 버전부터 WebPlanetKit을 npm을 통해 배포합니다.

  • npm 또는 yarn을 이용해 프로젝트에 WebPlanetKit을 설치해 사용할 수 있습니다.

    # npm
    npm install @line/planet-kit

    # yarn
    yarn add @line/planet-kit

마이그레이션

Breaking change 통화 시도 API 변경

  • API 통합
    • 이전에는 1대1 통화를 생성하거나 그룹 통화에 참여하기 위한 API를 API Key 또는 액세스 토큰 사용 여부에 따라 makeCallWithAPIKey()/makeCallWithAccessToken()joinConferenceWithAPIKey()/joinConferenceWithAccessToken()과 같은 별도 메서드로 제공했습니다.
    • 이를 각각 makeCall()joinConference()라는 단일 메서드로 통합했습니다.
  • 반환 유형 업데이트
    • Planet Cloud에 대한 통화 시도 중 발생하는 오류에 대한 자세한 이유를 제공하기 위해 StartFailReason을 추가했습니다.
    • 통화 시도 API(makeCall, verifyCall, joinConference)는 이제 구조화된 오류 객체를 통해 자세한 이유를 제공합니다.

API 변경

변경
  • 클래스 이름 변경

    이전 버전WebPlanetKit 5.3비고
    - CallParamsWithAPIKey
    - CallParamsWithAccessToken
    MakeCallParams1대1 통화
    - CallParamsOfVerifyVerifyCallParams1대1 통화
    - ConferenceParamsWithAPIKey
    - ConferenceParamsWithAccessToken
    ConferenceParams그룹 통화
  • Call class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    - function makeCallWithAPIKey(param: CallParamsWithAPIKey)
    - function makeCallWithAccessToken(param: CallParamsWithAccessToken)
    function makeCall(params): Promise
    throws {MakeCallError}
    function verifyCall(params)function verifyCall(params): Promise
    throws {VerifyCallError}
  • Conference class Group call

    이전 버전WebPlanetKit 5.3
    - function joinConferenceWithAPIKey(param: ConferenceParamsWithAPIKey)
    - function joinConferenceWithAccessToken(param: ConferenceParamsWithAccessToken)
    function joinConference(params): Promise
    throws {JoinConferenceError}
추가
  • MakeCallParams data class 1-to-1 call
    • var accessToken: string
    • var apiKey: string?
  • ConferenceParams data class Group call
    • var accessToken: string
    • var apiKey: string?
  • START_FAIL_REASON enum 1-to-1 callGroup call
  • MakeCallError data class 1-to-1 call
  • VerifyCallError data class 1-to-1 call
  • JoinConferenceError data class Group call
삭제
  • VerifyCallParams data class 1-to-1 call
    • var peerId: string
    • var peerServiceId: string

예제 코드

1대1 통화
  • 통화 생성(발신 측)

    const makeCallParams = {
    ...,
    accessToken: 'ACCESS_TOKEN'
    };

    planetKit.makeCall(makeCallParams)
    .then(() => {
    // Successfully made a call
    })
    .catch((makeCallError) => {
    // Failed to make a call
    // makeCallError.reason: START_FAIL_REASON
    // makeCallError.message: A descriptive message about the failure.
    });
  • 통화 수신(착신 측)

    const verifyCallParams = {
    ...
    };

    planetKit.verifyCall(verifyCallParams)
    .then(() => {
    // Successfully verified a call
    })
    .catch((verifyCallError) => {
    // Failed to verify a call
    // verifyCallError.reason: START_FAIL_REASON
    // verifyCallError.message: A descriptive message about the failure.
    });
그룹 통화
const conferenceParams = {
...,
accessToken: 'ACCESS_TOKEN'
};

planetKit.joinConference(conferenceParams)
.then(() => {
// Successfully joined a conference
})
.catch((joinConferenceError) => {
// Failed to join a conference
// joinConferenceError.reason: START_FAIL_REASON
// joinConferenceError.message: A descriptive message about the failure.
});

Breaking change 이벤트 콜백 함수 변경

네이티브 PlanetKit과 일치하도록 이벤트 콜백 함수를 변경했습니다.

API 변경

추가
  • ConferencePeerVideoPausedParam data class Group call
  • ConferencePeerVideoStatus data class Group call
  • VideoStatus data class Group call
변경
  • 클래스 이름 변경

    이전 버전WebPlanetKit 5.3비고
    ConferencePeerUpdateParamConferencePeerListUpdatedParam그룹 통화
  • MakeCallDelegate protocol 1-to-1 call

    이전 버전WebPlanetKit 5.3
    evtWaitConnect()evtWaitConnected()
    evtPeerUpdated(vidPause: boolean, reason: VIDEO_PAUSE_REASON)- evtPeerVideoPaused(pauseReason: VIDEO_PAUSE_REASON)
    - evtPeerVideoResumed()
    evtPeerMicStatus(isMuted: boolean)- evtPeerMicMuted()
    - evtPeerMicUnmuted()
    evtScreenShareStoppedOnBrowser()evtMyScreenShareStoppedOnBrowser()
    evtMuteRequested(isMute: boolean)evtMyMuteRequestedByPeer(isMute: boolean)
  • VerifyCallDelegate protocol 1-to-1 call

    이전 버전WebPlanetKit 5.3
    evtWaitConnect()evtWaitConnected()
    evtPeerUpdated(vidPause: boolean, reason: VIDEO_PAUSE_REASON)- evtPeerVideoPaused(pauseReason: VIDEO_PAUSE_REASON)
    - evtPeerVideoResumed()
    evtPeerMicStatus(isMuted: boolean)- evtPeerMicMuted()
    - evtPeerMicUnmuted()
    evtScreenShareStoppedOnBrowser()evtMyScreenShareStoppedOnBrowser()
    evtMuteRequested(isMute: boolean)evtMyMuteRequestedByPeer(isMute: boolean)
  • ConferenceDelegate protocol Group call

    이전 버전WebPlanetKit 5.3
    evtJoined()evtConnected()
    evtConfPeerUpdated(param: ConferencePeerUpdateParam)evtPeerListUpdated(param: ConferencePeerListUpdatedParam)
    evtConfVideoUpdated(param: ConferenceVideoUpdateParam)evtPeersVideoUpdated(param: ConferencePeerVideoStatus[])
    evtPeerUpdated(mid: string, vidPause: boolean, reason: string?)- evtPeersVideoPaused(param: ConferencePeerVideoPausedParam[])
    - evtPeersVideoResumed(param: PeerInfo[])
    evtPeerMicStatus(mid: string, isMuted: boolean)- evtPeersMicMuted(param: PeerInfo[])
    - evtPeersMicUnmuted(param: PeerInfo[])
    evtScreenShareStoppedOnBrowser()evtMyScreenShareStoppedOnBrowser()
    evtMuteRequested(peerInfo: MemberInfo, isMute: boolean)evtMyMuteRequestedByPeer(peer: PeerInfo, isMute: boolean)
    evtPeerScreenShareStarted(mid: string)evtPeerScreenShareStarted(userId: string)
    evtPeerScreenShareStopped(mid: string)evtPeerScreenShareStopped(userId: string)
    evtShortDataReceived(peerId: string, dataType: string, data: ArrayBuffer)evtShortDataReceived(userId: string, dataType: string, data: Uint8Array)
삭제
  • ConferenceVideoUpdateParam data class Group call

예제 코드

1대1 통화
  1. 이벤트 콜백 함수를 설정하세요.

    // Triggered when waiting call connection
    function onEvtWaitConnected() {}

    // Triggered when a peer's video is paused
    function onEvtPeerVideoPaused(pauseReason) {}

    // Triggered when a peer's video is resumed
    function onEvtPeerVideoResumed() {}

    // Triggered when a peer's mic is muted
    function onEvtPeerMicMuted() {}

    // Triggered when a peer's mic is unmuted
    function onEvtPeerMicUnmuted() {}

    // Triggered when the local user stops screen share with browser UI
    function onEvtMyScreenShareStoppedOnBrowser() {}

    // Triggered when a peer requested to mute the local user's audio
    function onEvtMyMuteRequestedByPeer(isMute) {
    if (isMute) {
    // Peer requested to mute my audio
    } else {
    // Peer requested to unmute my audio
    }
    }
  2. MakeCallParamsVerifyCallParams의 대리자(delegate)를 변경하세요.

    const makeCallParams = {
    ...,
    delegate: {
    - evtWaitConnect: onEvtWaitConnect,
    + evtWaitConnected: onEvtWaitConnected,

    - evtPeerUpdated: onEvtPeerUpdated,
    + evtPeerVideoPaused: onEvtPeerVideoPaused,
    + evtPeerVideoResumed: onEvtPeerVideoResumed,

    - evtPeerMicStatus: onEvtPeerMicStatus,
    + evtPeerMicMuted: onEvtPeerMicMuted,
    + evtPeerMicUnmuted: onEvtPeerMicUnmuted,

    - evtScreenShareStoppedOnBrowser: onEvtScreenShareStoppedOnBrowser,
    + evtMyScreenShareStoppedOnBrowser: onEvtMyScreenShareStoppedOnBrowser,

    - evtMuteRequested: onEvtMuteRequested,
    + evtMyMuteRequestedByPeer: onEvtMyMuteRequestedByPeer,
    ...
    }
    };

    const verifyCallParams = {
    ...,
    delegate: {
    - evtWaitConnect: onEvtWaitConnect,
    + evtWaitConnected: onEvtWaitConnected,

    - evtPeerUpdated: onEvtPeerUpdated,
    + evtPeerVideoPaused: onEvtPeerVideoPaused,
    + evtPeerVideoResumed: onEvtPeerVideoResumed,

    - evtPeerMicStatus: onEvtPeerMicStatus,
    + evtPeerMicMuted: onEvtPeerMicMuted,
    + evtPeerMicUnmuted: onEvtPeerMicUnmuted,

    - evtScreenShareStoppedOnBrowser: onEvtScreenShareStoppedOnBrowser,
    + evtMyScreenShareStoppedOnBrowser: onEvtMyScreenShareStoppedOnBrowser,

    - evtMuteRequested: onEvtMuteRequested,
    + evtMyMuteRequestedByPeer: onEvtMyMuteRequestedByPeer,
    ...
    }
    };
그룹 통화
  1. 이벤트 콜백 함수를 설정하세요.

    // Triggered when call is connected
    function onEvtConnected() {}

    // Triggered when call is disconnected
    function onConferenceEvtDisconnected(disconnectedParam) {
    const disconnectSource = disconnectedParam.source;
    const disconnectReason = disconnectedParam.reason;
    }

    // Triggered when peer join or leave the room
    function onConferenceEvtPeerListUpdated(param) {
    param.addedPeers.forEach(memberInfo => {// added member to room});
    param.removedPeers.forEach(memberInfo => { // removed member from room});
    }

    // Triggered when peer's video streaming is changed
    function onConferenceEvtPeersVideoUpdated(param) {
    param.forEach(peerVideoStatus => {
    const peer = peerVideoStatus.peer;
    const videoStatus = peerVideoStatus.videoStatus;

    if (videoStatus.state == PlanetKit.VIDEO_STATE.DISABLED) {
    // peer stop video streaming
    } else {
    // peer start video streaming
    }
    });
    }

    // Triggered when peer's video is paused
    function onConferenceEvtPeersVideoPaused(param) {
    param.forEach(peerVideoPausedParam => {
    const peer = peerVideoPausedParam.peer;
    const pauseReason = peerVideoPausedParam.pauseReason;
    console.log(`${peer.mid} camera off. reason is ${pauseReason}`);
    });
    }

    // Triggered when peer's video is resumed
    function onConferenceEvtPeersVideoResumed(param) {
    param.forEach(peer => {
    console.log(`${peer.mid} camera on`);
    });
    }

    // Triggered when peer's mic is muted
    function onConferenceEvtPeersMicMuted(param) {
    param.forEach(peer => {
    console.log(`${peer.mid} mic mute`);
    });
    }

    // Triggered when peer's mic is unmuted
    function onConferenceEvtPeersMicUnmuted(param) {
    param.forEach(peer => {
    console.log(`${peer.mid} mic unmute`);
    });
    }
  2. ConferenceParams의 대리자를 변경하세요.

    const conferenceParams = {
    delegate: {
    ...
    - evtJoined: onEvtJoined,
    + evtConnected: onEvtConnected,

    - evtLeft: onConferenceEvtLeft,
    + evtDisconnected: onConferenceEvtDisconnected,

    - evtConfPeerUpdated: onConferenceEvtConfPeerUpdated,
    + evtPeerListUpdated: onConferenceEvtPeerListUpdated,

    - evtConfVideoUpdated: onConferenceEvtConfVideoUpdated,
    + evtPeersVideoUpdated: onConferenceEvtPeersVideoUpdated,

    - evtPeerUpdated: onConferenceEvtPeerUpdated,
    + evtPeersVideoPaused: onConferenceEvtPeersVideoPaused,
    + evtPeersVideoResumed: onConferenceEvtPeersVideoResumed,

    - evtPeerMicStatus: onConferenceEvtPeerMicStatus,
    + evtPeersMicMuted: onConferenceEvtPeersMicMuted,
    + evtPeersMicUnmuted: onConferenceEvtPeersMicUnmuted,
    ...
    }
    }

Breaking change DisconnectedParam 업데이트

  • 통화가 종료될 때 evtDisconnected 이벤트에서 통화 종료 이유와 통화 종료 소스에 대한 정보를 얻을 수 있습니다.

API 변경

추가
  • DisconnectedParam data class 1-to-1 callGroup call
  • DisconnectReason data class 1-to-1 callGroup call
  • DISCONNECT_SOURCE enum 1-to-1 callGroup call
변경
  • MakeCallDelegate protocol 1-to-1 call

    이전 버전WebPlanetKit 5.3
    evtDisconnected(disconnectReason: CallDisconnectedParam)evtDisconnected(disconnectedParam: DisconnectedParam)
  • VerifyCallDelegate protocol 1-to-1 call

    이전 버전WebPlanetKit 5.3
    evtDisconnected(disconnectReason: CallDisconnectedParam)evtDisconnected(disconnectedParam: DisconnectedParam)
  • ConferenceDelegate protocol Group call

    이전 버전WebPlanetKit 5.3
    evtLeft(disconnectReason: ConferenceLeftParam)evtDisconnected(disconnectedParam: DisconnectedParam)
삭제
  • CallDisconnectedParam data class 1-to-1 call
  • ConferenceLeftParam data class Group call

예제 코드

evtDisconnected 이벤트에서 disconnectedParam를 얻을 수 있습니다.

planetKit.joinConference({
delegate: {
evtDisconnected: (disconnectedParam) => {
const disconnectSource = disconnectedParam.source;
const disconnectReason = disconnectedParam.reason;
},
},
...
});

Breaking change 네이티브 PlanetKit과 일치하도록 API 업데이트

  • 네이티브 PlanetKit과 일치하도록 API 이름을 변경했습니다.
  • API 이름을 개선했습니다.

API 변경

추가
  • ConferencePeerVideoStatus data class Group call
  • VIDEO_STATE enum 1-to-1 callGroup call
  • PeerInfo data class Group call
    • var videoState: VIDEO_STATE
변경
  • 클래스 이름 변경

    이전 버전WebPlanetKit 5.3비고
    CALL_TYPEMEDIA_TYPE1대1 통화, 그룹 통화
    MemberInfoPeerInfo그룹 통화
  • Call class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    function answerCall()function acceptCall(recordOnCloud?: boolean)
    function pauseMyVideo(pause: boolean)- function pauseMyVideo()
    - function resumeMyVideo()
  • MakeCallParams data class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    var isVideo: booleanvar mediaType: MEDIA_TYPE
  • VerifyCallParams data class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    var isVideo: booleanvar mediaType: MEDIA_TYPE
  • Conference class Group call

    이전 버전WebPlanetKit 5.3
    function isMember(mid: string)function isPeer(userId: string)
    function getMemberMidList()function getPeersUserId()
    function getMemberInfo(mid: string)function getPeerInfo(userId: string)
    function getAllMemberInfo()function getPeersInfo()
    function requestPeerMute(mid: string, isMute: boolean)function requestPeerMute(userId: string, isMute: boolean)
    function addPeerScreenShareView(mid: string, videoElement: HTMLElement)function addPeerScreenShareView(userId: string, videoElement: HTMLVideoElement)
    function removePeerScreenShareView(mid: string)function removePeerScreenShareView(userId: string)
    function changePeerView(mid: string, newElement: HTMLElement, cleanOldElement?: boolean)function changePeerView(userId: string, newElement:HTMLVideoElement, cleanOldElement?:boolean)
    function changePeerScreenShareView(mid: string, newElement: HTMLElement, cleanOldElement?: boolean)function changePeerScreenShareView(userId: string, newElement: HTMLVideoElement, cleanOldElement?: boolean)
    function removePeerVideo(mid: string)function removePeerVideo(userId: string)
    function pauseMyVideo(pause: boolean)- function pauseMyVideo()
    - function resumeMyVideo()
  • ConferenceParams data class Group call

    이전 버전WebPlanetKit 5.3
    var hasVideo: booleanvar mediaType: MEDIA_TYPE
  • PeerInfo data class Group call

    이전 버전WebPlanetKit 5.3
    var mid: stringvar userId: string
  • ConferenceRequestPeerVideoParams data class Group call

    이전 버전WebPlanetKit 5.3
    var peerId: stringvar userId: string
  • ConferencePeerListUpdatedParam data class Group call

    이전 버전WebPlanetKit 5.3
    var addedPeers: MemberInfo[]var addedPeers: PeerInfo[]
    var removedPeers: MemberInfo[]var removedPeers: PeerInfo[]
  • ConferencePeerVideoStatus data class Group call

    이전 버전WebPlanetKit 5.3
    var peer: MemberInfovar peer: PeerInfo
  • LOG_LEVEL enum 1-to-1 callGroup call

    이전 버전WebPlanetKit 5.3
    DEBUG: 3DEBUG: 'debug'
    LOG: 2LOG: 'log'
    WARN: 1WARN: 'warn'
    ERROR: 0ERROR: 'error'
  • RESOLUTION enum Group call

    이전 버전WebPlanetKit 5.3
    QVGA: 1QVGA: 'qvga'
    VGA: 2VGA: 'vga'
    HD: 3HD: 'hd'
삭제
  • ConferenceRequestPeerVideoParams data class Group call
    • var peerServiceId: string

Breaking change 마이크 및 카메라 켜기/끄기 파라미터 이름 변경

  • 마이크 및 카메라 켜기/끄기 파라미터의 이름을 보다 직관적으로 변경했습니다.

API 변경

변경
  • MakeCallParams data class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    var audioEnabled?: booleanvar micOn?: boolean
    var videoEnabled?: booleanvar cameraOn?: boolean
  • VerifyCallParams data class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    var audioEnabled?: booleanvar micOn?: boolean
    var videoEnabled?: booleanvar cameraOn?: boolean
  • ConferenceParams data class Group call

    이전 버전WebPlanetKit 5.3
    var audioEnabled?: booleanvar micOn?: boolean
    var videoEnabled?: booleanvar cameraOn?: boolean
  • EnableVideoOptions data class 1-to-1 callGroup call

    이전 버전WebPlanetKit 5.3
    var videoEnabled?: booleanvar cameraOn?: boolean

Breaking change 커스텀 미디어 스트림 설정 기능 업데이트

  • initMedia 옵션 및 video modifier API를 대체하는 더욱 직관적이고 사용자 친화적인 커스텀 미디어 스트림 설정 API를 추가했습니다.

API 변경

추가
  • Call class 1-to-1 call
    • function setCustomMediaStream(mediaStream: MediaStream)
    • function unsetCustomMediaStream()
    • function hasSetCustomMediaStreamWithAudio()
    • function hasSetCustomMediaStreamWithVideo()
  • Conference class Group call
    • function setCustomMediaStream(mediaStream: MediaStream)
    • function unsetCustomMediaStream()
    • function hasSetCustomMediaStreamWithAudio()
    • function hasSetCustomMediaStreamWithVideo()
  • MakeCallParams data class 1-to-1 call
    • var customMediaStream?: MediaStream
  • VerifyCallParams data class 1-to-1 call
    • var customMediaStream?: MediaStream
  • ConferenceParams data class Group call
    • var customMediaStream?: MediaStream
  • EnableVideoOptions data class 1-to-1 callGroup call
    • var customMediaStream?: MediaStream
삭제
  • Call class 1-to-1 call
    • function setVideoModifier(canvasElement: HTMLCanvasElement)
    • function resetVideoModifier()
  • Conference class Group call
    • function setVideoModifier(canvasElement: HTMLCanvasElement)
    • function resetVideoModifier()
  • MakeCallParams data class 1-to-1 call
    • var initMedia?: InitMedia
  • VerifyCallParams data class 1-to-1 call
    • var initMedia?: InitMedia
  • ConferenceParams data class Group call
    • var initMedia?: InitMedia
  • EnableVideoOptions data class 1-to-1 callGroup call
    • var initMedia?: InitMedia

예제 코드

커스텀 미디어 스트림을 참고하세요.

Breaking change 디버그 알림 기능 추가

  • 사용자에게 내부 경고 상황이나 디버그 정보를 제공하기 위한 디버그 알림 기능을 추가했습니다.
  • 이전에 evtInnerLog를 통해 전달하던 모든 이벤트를 KitDelegateevtDebugNotice 이벤트로 전환했습니다.

API 변경

추가
  • DEBUG_NOTICE enum 1-to-1 callGroup call
  • KitDelegate protocol 1-to-1 callGroup call
  • InitConfig data class 1-to-1 callGroup call
    • var delegate?: KitDelegate
삭제
  • MakeCallDelegate protocol 1-to-1 call
    • evtInnerLog(innerLogObject: InnerLogObject)
  • VerifyCallDelegate protocol 1-to-1 call
    • evtInnerLog(innerLogObject: InnerLogObject)
  • ConferenceDelegate protocol Group call
    • evtInnerLog(innerLogObject: InnerLogObject)
  • InnerLogObject data class 1-to-1 callGroup call
  • INNER_LOG_NAME enum 1-to-1 callGroup call

예제 코드

통화 인스턴스를 초기화할 때 KitDelegateevtDebugNotice 이벤트를 설정하세요.

const planetKit = new Conference({
...,
delegate: {
evtDebugNotice: (debugNoticeParam) => {},
},
});

Breaking change stid 스펙 변경

  • stid의 이름을 appServerData로 변경했습니다.
  • appServerData의 최댓값은 4096바이트입니다.
  • 최댓값을 초과하면 START_FAIL_REASON.TOO_LONG_APP_SERVER_DATA와 함께 통화에 실패합니다.

API 변경

변경
  • MakeCallParams data class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    var stid?: stringvar appServerData?: string
  • ConferenceParams data class Group call

    이전 버전WebPlanetKit 5.3
    var stid?: stringvar appServerData?: string

Enhancement 통화 종료 이유 업데이트

  • 통화 종료 이유를 업데이트했습니다.

API 변경

추가
  • KIT_DISCONNECT_REASON enum 1-to-1 callGroup call
    • PLANETKIT_DISCONNECT_REASON_MAX_CALL_TIME_EXCEEDED: 1208
    • PLANETKIT_DISCONNECT_REASON_UNAVAILABLE_NETWORK: 1308
    • PLANETKIT_DISCONNECT_REASON_APP_DESTROY: 1309
    • PLANETKIT_DISCONNECT_REASON_SYSTEM_SLEEP: 1310
    • PLANETKIT_DISCONNECT_REASON_SYSTEM_LOGOFF: 1311
    • PLANETKIT_DISCONNECT_REASON_MTU_EXCEEDED: 1312
    • PLANETKIT_DISCONNECT_REASON_SERVICE_TOO_MANY_REQUESTS: 1512
변경
  • KIT_DISCONNECT_REASON enum 1-to-1 callGroup call

    이전 버전WebPlanetKit 5.3
    PLANETKIT_DISCONNECT_REASON_INTERNAL_ERROR_BY_LOCALPLANETKIT_DISCONNECT_REASON_INTERNAL_ERROR
    PLANETKIT_DISCONNECT_REASON_SERVICE_APIKEY_ERRORPLANETKIT_DISCONNECT_REASON_SERVICE_ACCESS_TOKEN_ERROR
삭제
  • KIT_DISCONNECT_REASON enum 1-to-1 callGroup call
    • PLANETKIT_DISCONNECT_REASON_WRONG_ROOM_ATTR: 1403

Spec change 통화 파라미터에서 shareMicMute 삭제

  • 통화 파라미터에서 shareMicMute 속성을 삭제했습니다. 이제 로컬 사용자의 음 소거 상태는 항상 피어와 공유됩니다.

API 변경

삭제
  • MakeCallParams data class 1-to-1 call
    • var shareMicMute: boolean
  • VerifyCallParams data class 1-to-1 call
    • var shareMicMute: boolean
  • ConferenceParams data class Group call
    • var shareMicMute: boolean

Spec change 그룹 통화 파라미터에서 shareVideoPause 삭제

  • ConferenceParams에서 shareVideoPause 속성을 삭제했습니다. 이제 로컬 사용자의 비디오 상태가 기본적으로 공유됩니다.

API 변경

삭제
  • ConferenceParams data class Group call
    • var shareVideoPause?: boolean

Spec change sendShortData 스펙 변경

  • type의 최대 크기는 100바이트, data의 최대 크기는 800바이트입니다.
  • data의 유형을 Uint8Array로 변경했습니다.

API 변경

변경
  • Call class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    function sendShortData(type: string, data: ArrayBuffer)function sendShortData(type: string, data: Uint8Array)
  • Conference class Group call

    이전 버전WebPlanetKit 5.3
    function sendShortData(type: string, data: ArrayBuffer, targets?: string[])function sendShortData(type: string, data: Uint8Array, targets?: string[])

Spec change Safari 지원 버전 변경

  • Safari 브라우저의 지원 버전을 변경했습니다.
    • Safari(macOS/iOS): v14.5+ (beta)

API 변경 목록

변경

  • 클래스 이름 변경

    이전 버전WebPlanetKit 5.3비고
    CALL_TYPEMEDIA_TYPE1대1 통화, 그룹 통화
    - CallParamsWithAPIKey
    - CallParamsWithAccessToken
    MakeCallParams1대1 통화
    CallParamsOfVerifyVerifyCallParams1대1 통화
    - ConferenceParamsWithAPIKey
    - ConferenceParamsWithAccessToken
    ConferenceParams그룹 통화
    ConferenceLeftParamConferenceDisconnectedParam그룹 통화
    ConferencePeerUpdateParamConferencePeerListUpdatedParam그룹 통화
    MemberInfoPeerInfo그룹 통화
  • Call class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    - function makeCallWithAPIKey(param: CallParamsWithAPIKey)
    - function makeCallWithAccessToken(param: CallParamsWithAccessToken)
    function makeCall(params): Promise
    throws {MakeCallError}
    function verifyCall(params)function verifyCall(params): Promise
    throws {VerifyCallError}
    function sendShortData(type: string, data: ArrayBuffer)function sendShortData(type: string, data: Uint8Array)
    function pauseMyVideo(pause: boolean)- function pauseMyVideo()
    - function resumeMyVideo()
  • MakeCallParams data class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    var isVideo: booleanvar mediaType: MEDIA_TYPE
    var audioEnabled?: booleanvar micOn?: boolean
    var videoEnabled?: booleanvar cameraOn?: boolean
    var stid?: stringvar appServerData?: string
  • VerifyCallParams data class 1-to-1 call

    이전 버전WebPlanetKit 5.3
    var isVideo: booleanvar mediaType: MEDIA_TYPE
    var audioEnabled?: booleanvar micOn?: boolean
    var videoEnabled?: booleanvar cameraOn?: boolean
  • MakeCallDelegate protocol 1-to-1 call

    이전 버전WebPlanetKit 5.3
    evtWaitConnect()evtWaitConnected()
    evtDisconnected(disconnectReason: CallDisconnectedParam)evtDisconnected(disconnectedParam: DisconnectedParam)
    evtPeerUpdated(vidPause: boolean, reason: VIDEO_PAUSE_REASON)- evtPeerVideoPaused(pauseReason: VIDEO_PAUSE_REASON)
    - evtPeerVideoResumed()
    evtPeerMicStatus(isMuted: boolean)- evtPeerMicMuted()
    - evtPeerMicUnmuted()
    evtScreenShareStoppedOnBrowser()evtMyScreenShareStoppedOnBrowser()
    evtMuteRequested(isMute: boolean)evtMyMuteRequestedByPeer(isMute: boolean)
  • VerifyCallDelegate protocol 1-to-1 call

    이전 버전WebPlanetKit 5.3
    evtWaitConnect()evtWaitConnected()
    evtDisconnected(disconnectReason: CallDisconnectedParam)evtDisconnected(disconnectedParam: DisconnectedParam)
    evtPeerUpdated(vidPause: boolean, reason: VIDEO_PAUSE_REASON)- evtPeerVideoPaused(pauseReason: VIDEO_PAUSE_REASON)
    - evtPeerVideoResumed()
    evtPeerMicStatus(isMuted: boolean)- evtPeerMicMuted()
    - evtPeerMicUnmuted()
    evtScreenShareStoppedOnBrowser()evtMyScreenShareStoppedOnBrowser()
    evtMuteRequested(isMute: boolean)evtMyMuteRequestedByPeer(isMute: boolean)
  • Conference class Group call

    이전 버전WebPlanetKit 5.3
    - function joinConferenceWithAPIKey(param: ConferenceParamsWithAPIKey)
    - function joinConferenceWithAccessToken(param: ConferenceParamsWithAccessToken)
    function joinConference(params): Promise
    throws {JoinConferenceError}
    function isMember(mid: string)function isPeer(userId: string)
    function getMemberMidList()function getPeersUserId()
    function getMemberInfo(mid: string)function getPeerInfo(userId: string)
    function getAllMemberInfo()function getPeersInfo()
    function requestPeerMute(mid: string, isMute: boolean)function requestPeerMute(userId: string, isMute: boolean)
    function addPeerScreenShareView(mid: string, videoElement: HTMLElement)function addPeerScreenShareView(userId: string, videoElement: HTMLVideoElement)
    function removePeerScreenShareView(mid: string)function removePeerScreenShareView(userId: string)
    function changePeerView(mid: string, newElement: HTMLElement, cleanOldElement?: boolean)function changePeerView(userId: string, newElement:HTMLVideoElement, cleanOldElement?:boolean)
    function changePeerScreenShareView(mid: string, newElement: HTMLElement, cleanOldElement?: boolean)function changePeerScreenShareView(userId: string, newElement: HTMLVideoElement, cleanOldElement?: boolean)
    function removePeerVideo(mid: string)function removePeerVideo(userId: string)
    function sendShortData(type: string, data: ArrayBuffer, targets?: string[])function sendShortData(type: string, data: Uint8Array, targets?: string[])
    function pauseMyVideo(pause: boolean)- function pauseMyVideo()
    - function resumeMyVideo()
  • ConferenceParams data class Group call

    이전 버전WebPlanetKit 5.3
    var hasVideo: booleanvar mediaType: MEDIA_TYPE
    var audioEnabled?: booleanvar micOn?: boolean
    var videoEnabled?: booleanvar cameraOn?: boolean
    var stid?: stringvar appServerData?: string
  • ConferenceDelegate protocol Group call

    이전 버전WebPlanetKit 5.3
    evtJoined()evtConnected()
    evtLeft(param: ConferenceLeftParam)evtDisconnected(disconnectedParam: ConferenceDisconnectedParam)
    evtConfPeerUpdated(param: ConferencePeerUpdateParam)evtPeerListUpdated(param: ConferencePeerListUpdatedParam)
    evtConfVideoUpdated(param: ConferenceVideoUpdateParam)evtPeersVideoUpdated(param: ConferencePeerVideoStatus[])
    evtPeerUpdated(mid: string, vidPause: boolean, reason: string?)- evtPeersVideoPaused(param: ConferencePeerVideoPausedParam[])
    - evtPeersVideoResumed(param: PeerInfo[])
    evtPeerMicStatus(mid: string, isMuted: boolean)- evtPeersMicMuted(param: PeerInfo[])
    - evtPeersMicUnmuted(param: PeerInfo[])
    evtScreenShareStoppedOnBrowser()evtMyScreenShareStoppedOnBrowser()
    evtMuteRequested(peerInfo: MemberInfo, isMute: boolean)evtMyMuteRequestedByPeer(peer: PeerInfo, isMute: boolean)
    evtPeerScreenShareStarted(mid: string)evtPeerScreenShareStarted(userId: string)
    evtPeerScreenShareStopped(mid: string)evtPeerScreenShareStopped(userId: string)
    evtShortDataReceived(peerId: string, dataType: string, data: ArrayBuffer)evtShortDataReceived(userId: string, dataType: string, data: Uint8Array)
  • PeerInfo data class Group call

    이전 버전WebPlanetKit 5.3
    var mid: stringvar userId: string
  • ConferenceRequestPeerVideoParams data class Group call

    이전 버전WebPlanetKit 5.3
    var peerId: stringvar userId: string
  • ConferencePeerListUpdatedParam data class Group call

    이전 버전WebPlanetKit 5.3
    var addedPeers: MemberInfo[]var addedPeers: PeerInfo[]
    var removedPeers: MemberInfo[]var removedPeers: PeerInfo[]
  • EnableVideoOptions data class 1-to-1 callGroup call

    이전 버전WebPlanetKit 5.3
    var videoEnabled?: booleanvar cameraOn?: boolean
  • KIT_DISCONNECT_REASON enum 1-to-1 callGroup call

    이전 버전WebPlanetKit 5.3
    PLANETKIT_DISCONNECT_REASON_INTERNAL_ERROR_BY_LOCALPLANETKIT_DISCONNECT_REASON_INTERNAL_ERROR
    PLANETKIT_DISCONNECT_REASON_SERVICE_APIKEY_ERRORPLANETKIT_DISCONNECT_REASON_SERVICE_ACCESS_TOKEN_ERROR
  • LOG_LEVEL enum 1-to-1 callGroup call

    이전 버전WebPlanetKit 5.3
    DEBUG: 3DEBUG: 'debug'
    LOG: 2LOG: 'log'
    WARN: 1WARN: 'warn'
    ERROR: 0ERROR: 'error'
  • RESOLUTION enum Group call

    이전 버전WebPlanetKit 5.3
    QVGA: 1QVGA: 'qvga'
    VGA: 2VGA: 'vga'
    HD: 3HD: 'hd'

추가

  • DisconnectedParam data class 1-to-1 callGroup call
  • DisconnectReason data class 1-to-1 callGroup call
  • DISCONNECT_SOURCE enum 1-to-1 callGroup call
  • KIT_DISCONNECT_REASON enum 1-to-1 callGroup call
    • PLANETKIT_DISCONNECT_REASON_UNAVAILABLE_NETWORK: 1308
    • PLANETKIT_DISCONNECT_REASON_APP_DESTROY: 1309
    • PLANETKIT_DISCONNECT_REASON_SYSTEM_SLEEP: 1310
    • PLANETKIT_DISCONNECT_REASON_SYSTEM_LOGOFF: 1311
    • PLANETKIT_DISCONNECT_REASON_MTU_EXCEEDED: 1312
  • VIDEO_STATE enum 1-to-1 callGroup call
  • START_FAIL_REASON enum 1-to-1 callGroup call
  • MakeCallError data class 1-to-1 call
  • VerifyCallError data class 1-to-1 call
  • JoinConferenceError data class Group call
  • DEBUG_NOTICE enum 1-to-1 callGroup call
  • KitDelegate protocol 1-to-1 callGroup call
  • InitConfig data class 1-to-1 callGroup call
    • var delegate?: KitDelegate
  • Call class 1-to-1 call
    • function setCustomMediaStream(mediaStream: MediaStream)
    • function unsetCustomMediaStream()
    • function hasSetCustomMediaStreamWithAudio()
    • function hasSetCustomMediaStreamWithVideo()
  • MakeCallParams data class 1-to-1 call
    • var accessToken: string
    • var apiKey: string?
    • var customMediaStream?: MediaStream
  • VerifyCallParams data class 1-to-1 call
    • var customMediaStream?: MediaStream
  • Conference class Group call
    • function setCustomMediaStream(mediaStream: MediaStream)
    • function unsetCustomMediaStream()
    • function hasSetCustomMediaStreamWithAudio()
    • function hasSetCustomMediaStreamWithVideo()
  • ConferenceParams data class Group call
    • var accessToken: string
    • var apiKey: string?
    • var customMediaStream?: MediaStream
  • ConferencePeerVideoStatus data class Group call
  • VideoStatus data class Group call
  • ConferencePeerVideoPausedParam data class Group call
  • PeerInfo data class Group call
    • var videoState: VIDEO_STATE
  • EnableVideoOptions data class 1-to-1 callGroup call
    • var customMediaStream?: MediaStream

삭제

  • CallDisconnectedParam data class 1-to-1 call
  • ConferenceLeftParam data class Group call
  • KIT_DISCONNECT_REASON enum 1-to-1 callGroup call
    • PLANETKIT_DISCONNECT_REASON_WRONG_ROOM_ATTR: 1403
  • InnerLogObject data class 1-to-1 callGroup call
  • INNER_LOG_NAME enum 1-to-1 callGroup call
  • Call class 1-to-1 call
    • function setVideoModifier(canvasElement: HTMLCanvasElement)
    • function resetVideoModifier()
  • MakeCallParams data class 1-to-1 call
    • var shareMicMute: boolean
    • var initMedia?: InitMedia
  • VerifyCallParams data class 1-to-1 call
    • var peerId: string
    • var peerServiceId: string
    • var shareMicMute: boolean
    • var initMedia?: InitMedia
  • MakeCallDelegate protocol 1-to-1 call
    • evtInnerLog(innerLogObject: InnerLogObject)
  • VerifyCallDelegate protocol 1-to-1 call
    • evtInnerLog(innerLogObject: InnerLogObject)
  • Conference class Group call
    • function setVideoModifier(canvasElement: HTMLCanvasElement)
    • function resetVideoModifier()
  • ConferenceParams data class Group call
    • var shareMicMute: boolean
    • var shareVideoPause?: boolean
    • var initMedia?: InitMedia
  • ConferenceDelegate protocol Group call
    • evtPeerUpdated(vidPause: boolean, reason: VIDEO_PAUSE_REASON)
    • evtInnerLog(innerLogObject: InnerLogObject)
  • ConferenceRequestPeerVideoParams data class Group call
    • var peerServiceId: string
  • PeerInfo data class Group call
    • var videoPaused: boolean
    • var isSendingVideo: boolean
    • var state: string
  • MEMBER_INFO_STATE enum Group call
  • EnableVideoOptions data class 1-to-1 callGroup call
    • var initMedia?: InitMedia