Skip to main content
Version: 6.1

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 call
    • func withCustomUserTypeKey(customUserType: Int) throws -> PlanetKitJoinConferenceSettingBuilder
  • PlanetKitUserType enum Group call
  • PlanetKitUserTypeContainer class Group call
  • PlanetKitConferencePeer class Group call
    • var userType: PlanetKitUserTypeContainer { get }
  • PlanetKitConference class Group call
    • var 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)")
    }
    }
    }
    }