Release notes
This page provides the release notes of PlanetKit 1.2 for Flutter.
v1.2
Release date: 2026-08-03
Support contents sharing
Added support for contents sharing to 1-to-1 calls and group calls. Local users can set or unset binary data as normal, exclusive, or room shared contents, and receive callbacks when peers change their shared contents.
- Normal shared contents are per-user; multiple users can each hold their own value simultaneously.
- Exclusive shared contents allow only one active value per session; only the first setter can modify or unset it, and the value is cleared when the setter leaves the call.
- Room shared contents (group call only) remain valid after the setter leaves the call and can be updated by any participant.
API
Added
-
PlanetKitCallclass 1-to-1 callFuture<bool> setExclusivelySharedContents(Uint8List data) asyncFuture<bool> setSharedContents(Uint8List data) asyncFuture<bool> unsetExclusivelySharedContents() asyncFuture<bool> unsetSharedContents() async
-
PlanetKitCallEventHandlerclass 1-to-1 callfinal void Function(PlanetKitCall call, Uint8List data, Duration elapsed)? onPeerExclusivelySharedContentsSetfinal void Function(PlanetKitCall call)? onPeerExclusivelySharedContentsUnsetfinal void Function(PlanetKitCall call, Uint8List data, Duration elapsed)? onPeerSharedContentsSetfinal void Function(PlanetKitCall call)? onPeerSharedContentsUnset
-
PlanetKitConferenceclass Group callFuture<bool> setExclusivelySharedContents(Uint8List data) asyncFuture<bool> setRoomSharedContents(Uint8List data) asyncFuture<bool> setSharedContents(Uint8List data) asyncFuture<bool> unsetExclusivelySharedContents() asyncFuture<bool> unsetRoomSharedContents() asyncFuture<bool> unsetSharedContents() async
-
PlanetKitConferenceEventHandlerclass Group callfinal void Function(PlanetKitConference conference, PlanetKitConferencePeer peer, Uint8List data, Duration elapsed)? onPeerExclusivelySharedContentsSetfinal void Function(PlanetKitConference conference, PlanetKitConferencePeer peer)? onPeerExclusivelySharedContentsUnsetfinal void Function(PlanetKitConference conference, PlanetKitUserId peerId, Uint8List data, Duration elapsed)? onPeerRoomSharedContentsSetfinal void Function(PlanetKitConference conference, PlanetKitUserId peerId)? onPeerRoomSharedContentsUnsetfinal void Function(PlanetKitConference conference, List<PlanetKitConferenceSharedContents> sharedContents)? onPeersSharedContentsSetfinal void Function(PlanetKitConference conference, List<PlanetKitConferencePeer> peers)? onPeersSharedContentsUnset
-
PlanetKitConferenceSharedContentsclass Group call
Support data sessions
Added support for data session to 1-to-1 calls and group calls. Applications can use binary data streams identified by a stream ID in the range 100–999, and choose from four transmission types: reliable message, reliable bytes, unreliable bytes, and unreliable message.
- Create an outbound session with
makeOutboundDataSessionand send data withPlanetKitOutboundDataSession.send(data, timestamp). - Receive an incoming stream notification through
onDataSessionIncoming, and create an inbound session withmakeInboundDataSessionto receive data. - Call
unsupportInboundDataSessionto reject an incoming stream that the app does not intend to handle. - Retarget an outbound session to a specific peer with
PlanetKitOutboundDataSession.changeDestination(target), or passnullto send to all peers. The current receiver is exposed through thetargetgetter. This is meaningful for group calls.
API
Added
-
PlanetKitDataSessionStreamIdtypedef 1-to-1 callGroup call -
PlanetKitCallclass 1-to-1 callFuture<PlanetKitInboundDataSession?> getInboundDataSession(PlanetKitDataSessionStreamId streamId)Future<PlanetKitOutboundDataSession?> getOutboundDataSession(PlanetKitDataSessionStreamId streamId)bool isDataSessionSupportedFuture<PlanetKitMakeInboundDataSessionResult> makeInboundDataSession(PlanetKitDataSessionStreamId streamId, PlanetKitInboundDataSessionHandler handler)Future<PlanetKitMakeOutboundDataSessionResult> makeOutboundDataSession(PlanetKitDataSessionStreamId streamId, PlanetKitDataSessionType type, PlanetKitOutboundDataSessionHandler handler)Future<bool> unsupportInboundDataSession(PlanetKitDataSessionStreamId streamId)
-
PlanetKitCallEventHandlerclass 1-to-1 callfinal void Function(PlanetKitCall call, PlanetKitDataSessionStreamId streamId, PlanetKitDataSessionType type)? onDataSessionIncoming
-
PlanetKitConferenceclass Group callFuture<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)
-
PlanetKitConferenceEventHandlerclass Group callfinal void Function(PlanetKitConference conference, PlanetKitDataSessionStreamId streamId, PlanetKitDataSessionType type)? onDataSessionIncoming
-
PlanetKitConferencePeerclass Group callfinal bool isDataSessionSupported
-
PlanetKitDataSessionClosedReasonenum 1-to-1 callGroup callinternalsessionEndunsupported
-
PlanetKitDataSessionFailReasonenum 1-to-1 callGroup callalreadyExistinternalinvalidIdinvalidTypenonenotIncoming
-
PlanetKitDataSessionTypeenum 1-to-1 callGroup callreliableBytesreliableMessageunreliableBytesunreliableMessage
-
PlanetKitInboundDataSessionclass 1-to-1 callGroup call -
PlanetKitInboundDataSessionHandlerclass 1-to-1 callGroup call -
PlanetKitMakeInboundDataSessionResultclass 1-to-1 callGroup call -
PlanetKitMakeOutboundDataSessionResultclass 1-to-1 callGroup call -
PlanetKitOutboundDataSessionclass 1-to-1 callGroup callPlanetKitUserId? get targetFuture<bool> changeDestination(PlanetKitUserId? target) async
-
PlanetKitOutboundDataSessionHandlerclass 1-to-1 callGroup call
Support sending short data
Added support for sending short data to 1-to-1 calls and group calls. Applications can send typed binary payloads to call peers and receive incoming payloads through callbacks.
- In group calls,
sendShortDatabroadcasts to all participants;sendShortDataToPeertargets a specific participant byPlanetKitUserId. - The type string must be 100 bytes or less (including the null terminator); the data payload must be 800 bytes or less.
API
Added
-
PlanetKitCallclass 1-to-1 callFuture<bool> sendShortData({required String type, required Uint8List data}) async
-
PlanetKitCallEventHandlerclass 1-to-1 callfinal void Function(PlanetKitCall call, String type, Uint8List data)? onShortDataReceived
-
PlanetKitConferenceclass Group callFuture<bool> sendShortData({required String type, required Uint8List data}) asyncFuture<bool> sendShortDataToPeer({required PlanetKitUserId peerId, required String type, required Uint8List data}) async
-
PlanetKitConferenceEventHandlerclass Group callfinal void Function(PlanetKitConference conference, PlanetKitUserId senderId, String type, Uint8List data)? onShortDataReceived
Support screen share transmission on Android
Added support for sending screen share streams in 1-to-1 calls and group calls on Android. Applications can start and stop transmitting the local screen using startMyScreenShare() and stopMyScreenShare().
On iOS, startMyScreenShare() and stopMyScreenShare() always return false. iOS requires the broadcast extension flow for screen share, which is not covered by these methods.
API
Added
-
PlanetKitCallclass 1-to-1 callFuture<bool> startMyScreenShare() asyncFuture<bool> stopMyScreenShare() async
-
PlanetKitConferenceclass Group callFuture<bool> startMyScreenShare() asyncFuture<bool> stopMyScreenShare() async
Add version information API
Added PlanetKitManager.getVersionInfo() to expose SDK and plugin version information. The returned PlanetKitVersionInfo provides sdkVersion, pluginVersion, and userAgent.
- The
userAgentfield is available only afterinitializePlanetKit()has been called.
API
Added
-
PlanetKitManagerclass 1-to-1 callGroup callFuture<PlanetKitVersionInfo?> getVersionInfo()
-
PlanetKitVersionInfoclass 1-to-1 callGroup call
Support app server data
Added support for passing app server data when making a call or joining a conference. The app server data is delivered to the app server when the call or conference starts.
- Set app server data using
setAppServerData()on the param builder before making the call or joining the conference. - The
appServerDatafield is optional; if not set, no data is sent.
API
Added
-
PlanetKitMakeCallParamclass 1-to-1 callfinal String? appServerData
-
PlanetKitMakeCallParamBuilderclass 1-to-1 callPlanetKitMakeCallParamBuilder setAppServerData(String appServerData)
-
PlanetKitJoinConferenceParamclass Group callfinal String? appServerData
-
PlanetKitJoinConferenceParamBuilderclass Group callPlanetKitJoinConferenceParamBuilder setAppServerData(String appServerData)