本文にスキップする
Version: 7.0

リリースノート

iOS/macOS向けPlanetKit 7.0のリリースノートです。

PlanetKit 7.0

リリース日:2026-04-24

ロギングパスとレベル設定の統合

PlanetKitInitialSettingBuilderのロギングとパス設定APIを簡素化しました。

  • 分離されていたwithEnableKitLogKeywithSetKitBasePathKeywithSetKitLogFilePathKeyメソッドをwithEnableLog(logOption:)withSetPlanetKitSystemDirectory(path:)に置き換えました。
  • 新しいPlanetKitLogOptionクラスは、ロギング設定のためにローテーション機能付きのサイズ制限ロギングと、オプションでカスタムファイル名を指定できるサイズ無制限ロギングの2つのファクトリーメソッドを提供します。

API

変更
  • PlanetKitInitialSettingBuilder class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0
    func withEnableKitLogKey(level: PlanetKitLogLevel, enable: Bool, logSize: PlanetKitLogSizeLimit) -> PlanetKitInitialSettingBuilderfunc withEnableLog(logOption: PlanetKitLogOption) -> PlanetKitInitialSettingBuilder
    func withSetKitBasePathKey(path: String) throws -> PlanetKitInitialSettingBuilderfunc withSetPlanetKitSystemDirectory(path: String) throws -> PlanetKitInitialSettingBuilder
追加
  • PlanetKitLogOption class 1-to-1 callGroup call
    • let logDirectory: String
    • let logLevel: PlanetKitLogLevel
    • let logFileName: String?
    • static func withSizeLimitUnlimited(logDirectory: String, logFileName: String?, logLevel: PlanetKitLogLevel = .simple) -> PlanetKitLogOption?
    • static func withSizeLimit(logDirectory: String, logLevel: PlanetKitLogLevel = .simple, logSizeLimit: PlanetKitLogSizeLimit = .large) -> PlanetKitLogOption?
削除
  • PlanetKitInitialSettingBuilder class 1-to-1 callGroup call

    • func withSetKitLogFilePathKey(filePath: String) -> PlanetKitInitialSettingBuilder
  • PlanetKitLogLevel enum 1-to-1 callGroup call

    • case silent
  • PlanetKitLogSizeLimit enum 1-to-1 callGroup call

    • case unlimited

サンプルコード

サイズ制限付きロギング設定(ローテーション有効状態)
let logDirectory = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first!
.appendingPathComponent("PlanetKitLogs")
try! FileManager.default.createDirectory(at: logDirectory, withIntermediateDirectories: true)

let logOption = PlanetKitLogOption.withSizeLimit(
logDirectory: logDirectory.path,
logLevel: .simple,
logSizeLimit: .small
)

let settings = PlanetKitInitialSettingBuilder()
.withEnableLog(logOption: logOption!)
.build()
サイズ制限のないロギング設定
let logOption = PlanetKitLogOption.withSizeLimitUnlimited(
logDirectory: logDirectory.path,
logFileName: "myapp.log",
logLevel: .vital
)

let settings = PlanetKitInitialSettingBuilder()
.withEnableLog(logOption: logOption!)
.build()

使用されなくなったAPIキーの認証とピアのビデオ/画面共有リクエストメソッドの削除

使用されなくなったAPIキーベースの認証と、レガシーピアビデオリクエストのメソッドおよびピア画面共有リクエストメソッドを削除しました。代わりに、アクセストークンベースの認証とPlanetKitPeerControlのメソッドを使用してください。

API

削除
  • PlanetKitCallParam class 1-to-1 call

    • var APIKey: String?
    • init(myUserId: PlanetKitUserId, peerUserId: PlanetKitUserId, delegate: PlanetKitCallDelegate, APIKey: String)
  • PlanetKitCall class 1-to-1 call

    • let APIKey: String?
  • PlanetKitConferenceParam class Group call

    • var APIKey: String?
    • init(myUserId: PlanetKitUserId, roomId: String, roomServiceId: String, displayName: String?, delegate: PlanetKitConferenceDelegate, APIKey: String)
  • PlanetKitConference class Group call

    • let APIKey: String?
    • func requestPeerVideo(id: PlanetKitUserId, maxResolution: PlanetKitVideoResolution, delegate: PlanetKitVideoOutputDelegate, subgroupName: String?, completion: @escaping (Bool)->Void)
    • func requestPeerVideo(id: PlanetKitUserId, maxResolution: PlanetKitVideoResolution, delegate: PlanetKitVideoOutputDelegate, subgroupName: String?, resolution: @escaping (Bool, PlanetKitVideoResolution, PlanetKitVideoResolution, String)->Void)
    • func stopPeerVideo(id: PlanetKitUserId, subgroupName: String?, completion: @escaping (Bool)->Void)
    • func requestPeerScreenShare(peerId: PlanetKitUserId, subgroupName: String?, completion: @escaping (Bool)->Void)
    • func stopPeerScreenShare(peerId: PlanetKitUserId, subgroupName: String?, completion: @escaping (Bool)->Void)
  • PlanetKitStartFailReason enum 1-to-1 callGroup call

    • case invalidAPIKey

短いデータ転送に詳細な失敗理由を追加

sendShortDataの完了コールバックはBoolの代わりにPlanetKitSendShortDataFailReasonを返し、誤ったパラメーター、データサイズ制限、レート制限、タイムアウトなどの詳細な失敗情報を提供します。

API

変更
  • PlanetKitCall class 1-to-1 call

    以前のバージョンPlanetKit 7.0
    func sendShortData(type: String, data: Data, completion: @escaping (Bool)->Void)func sendShortData(type: String, data: Data, completion: @escaping (PlanetKitSendShortDataFailReason)->Void)
  • PlanetKitConference class Group call

    以前のバージョンPlanetKit 7.0
    func sendShortData(peerId: PlanetKitUserId, type: String, data: Data, completion: @escaping (Bool)->Void)func sendShortData(peerId: PlanetKitUserId, type: String, data: Data, completion: @escaping (PlanetKitSendShortDataFailReason)->Void)
    func sendShortData(type: String, data: Data, completion: @escaping (Bool)->Void)func sendShortData(type: String, data: Data, completion: @escaping (PlanetKitSendShortDataFailReason)->Void)
追加
  • PlanetKitSendShortDataFailReason enum 1-to-1 callGroup call
    • case none - 成功
    • case invalidParameter - 誤った入力パラメーター(例:空データ)
    • case tooLongDataType - データタイプが100バイトを超過
    • case tooLongData - データペイロードが800バイトを超過
    • case tooFrequent - レート制限を超過(最大1秒あたり1回)
    • case timeout - 送信処理のタイムアウト発生
    • case internalError - 内部エラー

画面共有の無効化の理由を渡す

ピアが画面共有を中止すると、他の参加者にdisabledReasonを渡します。

  • グループ通話では、PlanetKitPeerControlDelegate.didUpdateScreenSharePlanetKitConferenceScreenShareUpdateParamdisabledReasonが含まれます。
  • 1対1通話では、PlanetKitCallDelegate.peerDidStopScreenSharereasonパラメータータイプをInt32からNSNumber?に変更しました。
  • disabledReasonの有効範囲は、0~39です。

API

変更
  • PlanetKitPeerControlDelegate protocol Group call

    以前のバージョンPlanetKit 7.0
    func didUpdateScreenShare(_ peerControl: PlanetKitPeerControl, subgroup: PlanetKitSubgroup, status: PlanetKitScreenShareStatus)func didUpdateScreenShare(_ peerControl: PlanetKitPeerControl, subgroup: PlanetKitSubgroup, status: PlanetKitScreenShareStatus, disabledReason: NSNumber?)
  • PlanetKitCallDelegate protocol 1-to-1 call

    以前のバージョンPlanetKit 7.0
    func peerDidStopScreenShare(_ call: PlanetKitCall, reason: Int32)func peerDidStopScreenShare(_ call: PlanetKitCall, reason: NSNumber?)
追加
  • PlanetKitConferenceScreenShareUpdateParam class Group call
    • let disabledReason: NSNumber?

ビデオモディファイアーでPlanetKitVideoBufferメンバーの修正制限

ビデオモディファイアー内で意図しない修正が発生するのを防ぐため、sampleBufferを除くPlanetKitVideoBufferのすべての属性を読み取り専用に変更しました。

  • sampleBufferを修正するときは、次の制約を適用します。これに違反すると、フレームがドロップされ、didEncounterError(_:)を通じてエラーが報告されます。
    • 元の解像度を超えるアップスケーリングは許容されません。
    • ピクセルフォーマットの変更は許容されません。

API

変更
  • PlanetKitVideoBuffer class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0
    var timestamp: CMTimelet timestamp: CMTime
    var rotation: PlanetKitVideoRotationlet rotation: PlanetKitVideoRotation
    var position: PlanetKitCameraPositionlet position: PlanetKitCameraPosition
    var sender: PlanetKitUserId?let sender: PlanetKitUserId?
    var source: PlanetKitVideoSourcelet source: PlanetKitVideoSource
追加
  • PlanetKitVideoModifierDelegate protocol 1-to-1 callGroup call

    • func didEncounterError(_ error: PlanetKitVideoModifierError)
  • PlanetKitVideoModifierError enum 1-to-1 callGroup call

    • case videoFrameRejectedByUpscaling
    • case videoFrameRejectedByFormatChange

サンプルコード

ビデオモディファイアーのエラー処理
class MyVideoModifier: PlanetKitVideoModifierDelegate {
func videoOutput(_ videoBuffer: PlanetKitVideoBuffer) {
guard let sampleBuffer = videoBuffer.sampleBuffer else { return }
// Apply filter with resolution <= original and same pixel format
videoBuffer.sampleBuffer = applyFilter(to: sampleBuffer)
}

func didEncounterError(_ error: PlanetKitVideoModifierError) {
switch error {
case .videoFrameRejectedByUpscaling:
print("Upscaling is not allowed.")
case .videoFrameRejectedByFormatChange:
print("Changing pixel format is not allowed.")
}
}
}

ビデオと画面共有のモディファイアーAPIの改善

PlanetKitCallPlanetKitConferenceに重複して存在していたビデオモディファイアーとレシーバーの属性を削除しました。今後は、代わりにPlanetKitCameraManager.modifierを使用してください。

  • PlanetKitCameraManager.previewModifierはプレビューだけでなく、送信ビデオストリームにも影響することを反映してmodifierに名前を変更しました。
  • PlanetKitVideoStream.modifierPlanetKitCameraManager.modifierと重複しているため、削除しました。
  • 画面共有の修正は、新しく追加されたmyScreenShareModifier属性を使用してください。

API

変更
  • PlanetKitCameraManager class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0
    var previewModifier: PlanetKitVideoModifierDelegate?var modifier: PlanetKitVideoModifierDelegate?
追加
  • PlanetKitCall class 1-to-1 call

    • weak var myScreenShareModifier: PlanetKitVideoModifierDelegate?
  • PlanetKitConference class Group call

    • weak var myScreenShareModifier: PlanetKitVideoModifierDelegate?
削除
  • PlanetKitCall class 1-to-1 call

    • weak var myVideoModifier: PlanetKitVideoModifierDelegate?
  • PlanetKitConference class Group call

    • weak var myVideoModifier: PlanetKitVideoModifierDelegate?
    • weak var myVideoReceiver: PlanetKitVideoOutputDelegate?
  • PlanetKitVideoStream class 1-to-1 callGroup call

    • weak var modifier: PlanetKitVideoModifierDelegate?

マイグレーションガイド

ビデオモディファイアーの設定
  • 以前のバージョン
// Option A: via Call/Conference session
call.myVideoModifier = myModifier

// Option B: via VideoStream
call.myVideoStream.modifier = myModifier

// Option C: via CameraManager (preview only)
PlanetKitCameraManager.shared.previewModifier = myModifier
  • 新しいバージョン
// Use CameraManager.modifier for all video modification
PlanetKitCameraManager.shared.modifier = myModifier
画面共有モディファイアーの設定
  • 以前のバージョン
call.myScreenShareStream.modifier = myModifier
  • 新しいバージョン
call.myScreenShareModifier = myModifier

カスタムオーディオデバイスリセットAPIの名前変更

resetCustomMicToDefaultMic()resetCustomSpeakerToDefaultSpeaker()の名前をそれぞれclearCustomMic()clearCustomSpeaker()に変更しました。

API

変更
  • PlanetKitAudioManager class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0
    func resetCustomMicToDefaultMic()func clearCustomMic()
    func resetCustomSpeakerToDefaultSpeaker()func clearCustomSpeaker()

優先サンプリングレートをプリセットに置き換え

PlanetKitAudioManagerのサンプリングレート属性タイプをFloat64からPlanetKitAudioSampleRate enumに変更しました。

  • PlanetKitAudioSampleRate enumは、サポートされているサンプリングレートの事前定義された集合を提供します。
  • 設定されたサンプリングレートは優先値です。PlanetKitは設定されたレートでオーディオセッションを開くために最善を尽くしますが、必要に応じてサポートされている最も近いレートに置き換えることができます。

API

変更
  • PlanetKitAudioManager class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0
    var defaultMicSampleRate: Float64 { get set }var defaultMicSampleRate: PlanetKitAudioSampleRate { get set }
    var defaultSpeakerSampleRate: Float64 { get set }var defaultSpeakerSampleRate: PlanetKitAudioSampleRate { get set }
追加
  • PlanetKitAudioSampleRate enum 1-to-1 callGroup call
    • case sampleRate16k - 16,000 Hz
    • case sampleRate32k - 32,000 Hz
    • case sampleRate48k - 48,000 Hz
    • var floatValue: Float64

API名の誤字修正

正確性とネーミングの一貫性を高めるため、API名の誤字を修正しました。

API

変更
  • PlanetKitAudioManager class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0
    func startMicPreview(_ preview: PlanetKitAudioMicPreviewDelegate, volumeInternal: TimeInterval) -> Boolfunc startMicPreview(_ preview: PlanetKitAudioMicPreviewDelegate, volumeInterval: TimeInterval) -> Bool
  • PlanetKitStatistics.Video class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0
    let witdh: UInt16let width: UInt16
  • PlanetKitStatistics.PeerVideo class Group call

    以前のバージョンPlanetKit 7.0
    let subGroupName: String?let subgroupName: String?
  • PlanetKitStatistics.PeerScreenShare class Group call

    以前のバージョンPlanetKit 7.0
    let subGroupName: String?let subgroupName: String?

(iOS)PlanetKitAutoGainControlModeからhardware削除

iOSからPlanetKitAutoGainControlModehardwareケースを削除しました。

API

削除
  • (iOSのみ)PlanetKitAutoGainControlMode enum1-to-1 callGroup call
    • case hardware

(macOS)PlanetKitAutoGainControlModehardwareEchoTolerance追加

macOSでPlanetKitAutoGainControlModehardwareEchoToleranceケースを追加しました。このモードは、通話環境にエコーがある場合でも、スピーカーの音声レベルを基準にして入力音量を調整します。

API

追加
  • (macOSのみ)PlanetKitAutoGainControlMode enum 1-to-1 callGroup call
    • case hardwareEchoTolerance