본문으로 건너뛰기
Version: 1.2

릴리스 노트

Flutter용 PlanetKit 1.2의 릴리스 노트입니다.

v1.2

릴리스 일자: 2026-08-03

콘텐츠 공유 지원

1대1 통화 및 그룹 통화에 콘텐츠 공유 기능을 추가했습니다. 로컬 사용자는 바이너리 데이터를 일반 공유, 독점적 공유, 방 범위 공유 콘텐츠로 설정하거나 해제할 수 있으며, 피어가 공유 콘텐츠를 변경할 때 콜백을 수신합니다.

  • 일반 공유 콘텐츠는 사용자별로 적용되며, 여러 사용자가 각자의 값을 동시에 보유할 수 있습니다.
  • 독점적 공유 콘텐츠는 세션당 하나의 활성값만 허용하며, 처음 설정한 사용자만 수정하거나 해제할 수 있고, 설정자가 통화를 떠나면 값이 초기화됩니다.
  • 방 범위 공유 콘텐츠(그룹 통화 전용)는 설정자가 통화를 떠난 후에도 유효하게 유지되며, 모든 참가자가 업데이트할 수 있습니다.

API

추가
  • PlanetKitCall class 1-to-1 call

    • Future<bool> setExclusivelySharedContents(Uint8List data) async
    • Future<bool> setSharedContents(Uint8List data) async
    • Future<bool> unsetExclusivelySharedContents() async
    • Future<bool> unsetSharedContents() async
  • PlanetKitCallEventHandler class 1-to-1 call

    • final void Function(PlanetKitCall call, Uint8List data, Duration elapsed)? onPeerExclusivelySharedContentsSet
    • final void Function(PlanetKitCall call)? onPeerExclusivelySharedContentsUnset
    • final void Function(PlanetKitCall call, Uint8List data, Duration elapsed)? onPeerSharedContentsSet
    • final void Function(PlanetKitCall call)? onPeerSharedContentsUnset
  • PlanetKitConference class Group call

    • Future<bool> setExclusivelySharedContents(Uint8List data) async
    • Future<bool> setRoomSharedContents(Uint8List data) async
    • Future<bool> setSharedContents(Uint8List data) async
    • Future<bool> unsetExclusivelySharedContents() async
    • Future<bool> unsetRoomSharedContents() async
    • Future<bool> unsetSharedContents() async
  • PlanetKitConferenceEventHandler class Group call

    • final void Function(PlanetKitConference conference, PlanetKitConferencePeer peer, Uint8List data, Duration elapsed)? onPeerExclusivelySharedContentsSet
    • final void Function(PlanetKitConference conference, PlanetKitConferencePeer peer)? onPeerExclusivelySharedContentsUnset
    • final void Function(PlanetKitConference conference, PlanetKitUserId peerId, Uint8List data, Duration elapsed)? onPeerRoomSharedContentsSet
    • final void Function(PlanetKitConference conference, PlanetKitUserId peerId)? onPeerRoomSharedContentsUnset
    • final void Function(PlanetKitConference conference, List<PlanetKitConferenceSharedContents> sharedContents)? onPeersSharedContentsSet
    • final void Function(PlanetKitConference conference, List<PlanetKitConferencePeer> peers)? onPeersSharedContentsUnset
  • PlanetKitConferenceSharedContents class Group call

데이터 세션 지원

1대1 통화 및 그룹 통화에 데이터 세션 기능을 추가했습니다. 애플리케이션은 100~999 범위의 스트림 ID로 식별되는 바이너리 데이터 스트림을 사용할 수 있으며, reliable message, reliable bytes, unreliable bytes, unreliable message의 네 가지 전송 유형 중 하나를 선택할 수 있습니다.

  • makeOutboundDataSession으로 아웃바운드 세션을 생성하고, PlanetKitOutboundDataSession.send(data, timestamp)로 데이터를 전송합니다.
  • onDataSessionIncoming을 통해 수신 스트림 알림을 받고, makeInboundDataSession으로 인바운드 세션을 생성하여 데이터를 수신합니다.
  • 앱에서 처리하지 않을 수신 스트림은 unsupportInboundDataSession을 호출하여 거부합니다.
  • PlanetKitOutboundDataSession.changeDestination(target)으로 아웃바운드 세션의 대상을 특정 피어로 변경하거나, null을 전달하여 모든 피어에게 전송합니다. 현재 수신자는 target getter를 통해 확인할 수 있습니다. 이 기능은 그룹 통화에서 유용합니다.

API

추가
  • PlanetKitDataSessionStreamId typedef 1-to-1 callGroup call

  • PlanetKitCall class 1-to-1 call

    • Future<PlanetKitInboundDataSession?> getInboundDataSession(PlanetKitDataSessionStreamId streamId)
    • Future<PlanetKitOutboundDataSession?> getOutboundDataSession(PlanetKitDataSessionStreamId streamId)
    • bool isDataSessionSupported
    • Future<PlanetKitMakeInboundDataSessionResult> makeInboundDataSession(PlanetKitDataSessionStreamId streamId, PlanetKitInboundDataSessionHandler handler)
    • Future<PlanetKitMakeOutboundDataSessionResult> makeOutboundDataSession(PlanetKitDataSessionStreamId streamId, PlanetKitDataSessionType type, PlanetKitOutboundDataSessionHandler handler)
    • Future<bool> unsupportInboundDataSession(PlanetKitDataSessionStreamId streamId)
  • PlanetKitCallEventHandler class 1-to-1 call

    • final void Function(PlanetKitCall call, PlanetKitDataSessionStreamId streamId, PlanetKitDataSessionType type)? onDataSessionIncoming
  • PlanetKitConference class Group call

    • Future<PlanetKitInboundDataSession?> getInboundDataSession(PlanetKitDataSessionStreamId streamId)
    • Future<PlanetKitOutboundDataSession?> getOutboundDataSession(PlanetKitDataSessionStreamId streamId)
    • Future<PlanetKitMakeInboundDataSessionResult> makeInboundDataSession(PlanetKitDataSessionStreamId streamId, PlanetKitInboundDataSessionHandler handler)
    • Future<PlanetKitMakeOutboundDataSessionResult> makeOutboundDataSession(PlanetKitDataSessionStreamId streamId, PlanetKitDataSessionType type, PlanetKitOutboundDataSessionHandler handler)
    • Future<bool> unsupportInboundDataSession(PlanetKitDataSessionStreamId streamId)
  • PlanetKitConferenceEventHandler class Group call

    • final void Function(PlanetKitConference conference, PlanetKitDataSessionStreamId streamId, PlanetKitDataSessionType type)? onDataSessionIncoming
  • PlanetKitConferencePeer class Group call

    • final bool isDataSessionSupported
  • PlanetKitDataSessionClosedReason enum 1-to-1 callGroup call

    • internal
    • sessionEnd
    • unsupported
  • PlanetKitDataSessionFailReason enum 1-to-1 callGroup call

    • alreadyExist
    • internal
    • invalidId
    • invalidType
    • none
    • notIncoming
  • PlanetKitDataSessionType enum 1-to-1 callGroup call

    • reliableBytes
    • reliableMessage
    • unreliableBytes
    • unreliableMessage
  • PlanetKitInboundDataSession class 1-to-1 callGroup call

  • PlanetKitInboundDataSessionHandler class 1-to-1 callGroup call

  • PlanetKitMakeInboundDataSessionResult class 1-to-1 callGroup call

  • PlanetKitMakeOutboundDataSessionResult class 1-to-1 callGroup call

  • PlanetKitOutboundDataSession class 1-to-1 callGroup call

    • PlanetKitUserId? get target
    • Future<bool> changeDestination(PlanetKitUserId? target) async
  • PlanetKitOutboundDataSessionHandler class 1-to-1 callGroup call

짧은 데이터 전송 지원

1대1 통화 및 그룹 통화에 짧은 데이터 전송 기능을 추가했습니다. 애플리케이션은 타입이 지정된 바이너리 페이로드를 통화 피어에게 전송하고, 콜백을 통해 수신 페이로드를 받을 수 있습니다.

  • 그룹 통화에서 sendShortData는 모든 참가자에게 브로드캐스트하고, sendShortDataToPeerPlanetKitUserId로 특정 참가자를 지정합니다.
  • 타입 문자열은 100바이트 이하(null 종료 문자 포함)여야 하며, 데이터 페이로드는 800바이트 이하여야 합니다.

API

추가
  • PlanetKitCall class 1-to-1 call

    • Future<bool> sendShortData({required String type, required Uint8List data}) async
  • PlanetKitCallEventHandler class 1-to-1 call

    • final void Function(PlanetKitCall call, String type, Uint8List data)? onShortDataReceived
  • PlanetKitConference class Group call

    • Future<bool> sendShortData({required String type, required Uint8List data}) async
    • Future<bool> sendShortDataToPeer({required PlanetKitUserId peerId, required String type, required Uint8List data}) async
  • PlanetKitConferenceEventHandler class Group call

    • final void Function(PlanetKitConference conference, PlanetKitUserId senderId, String type, Uint8List data)? onShortDataReceived

Android 화면 공유 전송 지원

Android의 1대1 통화 및 그룹 통화에서 화면 공유 스트림 전송 기능을 추가했습니다. 애플리케이션은 startMyScreenShare()stopMyScreenShare()를 사용하여 로컬 화면 전송을 시작하고 중지할 수 있습니다.

Note

iOS에서는 startMyScreenShare()stopMyScreenShare()가 항상 false를 반환합니다. iOS의 화면 공유는 Broadcast Extension 방식을 사용해야 하며, 이 메서드로는 지원되지 않습니다.

API

추가
  • PlanetKitCall class 1-to-1 call

    • Future<bool> startMyScreenShare() async
    • Future<bool> stopMyScreenShare() async
  • PlanetKitConference class Group call

    • Future<bool> startMyScreenShare() async
    • Future<bool> stopMyScreenShare() async

버전 정보 API 추가

SDK 및 플러그인 버전 정보를 제공하는 PlanetKitManager.getVersionInfo()를 추가했습니다. 반환되는 PlanetKitVersionInfosdkVersion, pluginVersion, userAgent를 제공합니다.

  • userAgent 필드는 initializePlanetKit() 호출 이후에만 사용할 수 있습니다.

API

추가
  • PlanetKitManager class 1-to-1 callGroup call

    • Future<PlanetKitVersionInfo?> getVersionInfo()
  • PlanetKitVersionInfo class 1-to-1 callGroup call

앱 서버 데이터 지원

통화를 시작하거나 컨퍼런스에 참여할 때 앱 서버 데이터를 전달하는 기능을 추가했습니다. 앱 서버 데이터는 통화 또는 컨퍼런스가 시작될 때 앱 서버로 전달됩니다.

  • 통화를 시작하거나 컨퍼런스에 참여하기 전에 파라미터 빌더에서 setAppServerData()를 사용하여 앱 서버 데이터를 설정합니다.
  • appServerData 필드는 선택 사항이며, 설정하지 않으면 데이터가 전송되지 않습니다.

API

추가
  • PlanetKitMakeCallParam class 1-to-1 call

    • final String? appServerData
  • PlanetKitMakeCallParamBuilder class 1-to-1 call

    • PlanetKitMakeCallParamBuilder setAppServerData(String appServerData)
  • PlanetKitJoinConferenceParam class Group call

    • final String? appServerData
  • PlanetKitJoinConferenceParamBuilder class Group call

    • PlanetKitJoinConferenceParamBuilder setAppServerData(String appServerData)