Release notes
This page provides the release notes of PlanetKit 6.1 for iOS/macOS.
PlanetKit 6.1.1
Release date: 2025-08-29
(macOS only) Fix a bug in the audio volume setting function
Resolved an issue where adjusting the volume of an external microphone device that has both input and output channels unintentionally changes the speaker volume.
(macOS only) Fix a crash that could occur when VPIO was enabled
Resolved a crash that could occur when VPIO was enabled while audio preview was running on macOS.
In PlanetKit versions 6.1.0, this issue may arise under any of the following conditions, which cause VPIO to be activated:
- VPIO has been explicitly turned on.
- MLNS is disabled, causing VPIO to turn on.
- On low-spec devices, MLNS is automatically disabled, which in turn activates VPIO.
If you are using PlanetKit version 6.1.0 on macOS and any of the above conditions apply, an update is required.
PlanetKit 6.1
Release date: 2025-08-08
Support user types
- Added support for application-defined user types, enabling the app to customize behavior or UI based on user type (e.g., distinguishing between regular users and bot users).
- User type values can be set in the range of 1 to 9999.
- Values of 10000 and above are reserved for agents provided by LINE Planet. For details, see Agent call.
- For more information on user types, refer to Setting the user type.
API
Added
PlanetKitJoinConferenceSettingBuilder
class Group callfunc withCustomUserTypeKey(customUserType: Int) throws -> PlanetKitJoinConferenceSettingBuilder
PlanetKitUserType
enum Group callPlanetKitUserTypeContainer
class Group callPlanetKitConferencePeer
class Group callvar userType: PlanetKitUserTypeContainer { get }
PlanetKitConference
class Group callvar myCustomUserType: Int? { get }
var myCustomUserTypeValue: NSNumber? { get }
Example code
-
Step 1: Define the application user type and set it when joining a group call.
enum AppUserType: Int {
case videoBot = 100
}
func joinConference(...) {
...
let settings = try! PlanetKitJoinConferenceSettingBuilder()
...
.withCustomUserTypeKey(userType: AppUserType.videoBot.rawValue)
.build()
let param = PlanetKitConferenceParam(myUserId: myUserId, roomId: roomId, roomServiceId: serviceId, displayName: displayName, delegate: manageable, accessToken: accessToken)
...
let result = PlanetKitManager.shared.joinConference(param: param, settings: settings)
...
} -
Step 2: Implement actions to be processed according to each user type.
extension ConferenceViewController: PlanetKitConferenceDelegate {
...
func peerListDidUpdate(_ conference: PlanetKitConference, updated: PlanetKitConferencePeerListUpdateParam) {
for peer in updated.addedPeers {
if peer.userType.customUserType == AppUserType.videoBot.rawValue {
print("Video bot has joined. ID: \(peer.id.uniqueId)")
}
}
for peer in updated.removedPeers {
if peer.userType.customUserType == AppUserType.videoBot.rawValue {
print("Video bot has left. ID: \(peer.id.uniqueId)")
}
}
}
}