リリースノート
iOS/macOS向けPlanetKit 7.0のリリースノートです。
PlanetKit 7.0
リリース日:2026-04-24
ロギングパスとレベル設定の統合
PlanetKitInitialSettingBuilderのロギングとパス設定APIを簡素化しました。
- 分離されていた
withEnableKitLogKey、withSetKitBasePathKey、withSetKitLogFilePathKeyメソッドをwithEnableLog(logOption:)とwithSetPlanetKitSystemDirectory(path:)に置き換えました。 - 新しい
PlanetKitLogOptionクラスは、ロギング設定のためにローテーション機能付きのサイズ制限ロギングと、オプションでカスタムファイル名を指定できるサイズ無制限ロギングの2つのファクトリーメソッドを提供します。
API
変更
-
PlanetKitInitialSettingBuilderclass 1-to-1 callGroup call以前のバージョン PlanetKit 7.0 func withEnableKitLogKey(level: PlanetKitLogLevel, enable: Bool, logSize: PlanetKitLogSizeLimit) -> PlanetKitInitialSettingBuilderfunc withEnableLog(logOption: PlanetKitLogOption) -> PlanetKitInitialSettingBuilderfunc withSetKitBasePathKey(path: String) throws -> PlanetKitInitialSettingBuilderfunc withSetPlanetKitSystemDirectory(path: String) throws -> PlanetKitInitialSettingBuilder
追加
PlanetKitLogOptionclass 1-to-1 callGroup calllet logDirectory: Stringlet logLevel: PlanetKitLogLevellet 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?
削除
-
PlanetKitInitialSettingBuilderclass 1-to-1 callGroup callfunc withSetKitLogFilePathKey(filePath: String) -> PlanetKitInitialSettingBuilder
-
PlanetKitLogLevelenum 1-to-1 callGroup callcase silent
-
PlanetKitLogSizeLimitenum 1-to-1 callGroup callcase 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
削除
-
PlanetKitCallParamclass 1-to-1 callvar APIKey: String?init(myUserId: PlanetKitUserId, peerUserId: PlanetKitUserId, delegate: PlanetKitCallDelegate, APIKey: String)
-
PlanetKitCallclass 1-to-1 calllet APIKey: String?
-
PlanetKitConferenceParamclass Group callvar APIKey: String?init(myUserId: PlanetKitUserId, roomId: String, roomServiceId: String, displayName: String?, delegate: PlanetKitConferenceDelegate, APIKey: String)
-
PlanetKitConferenceclass Group calllet 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)
-
PlanetKitStartFailReasonenum 1-to-1 callGroup callcase invalidAPIKey
短いデータ転送に詳細な失敗理由を追加
sendShortDataの完了コールバックはBoolの代わりにPlanetKitSendShortDataFailReasonを返し、誤ったパラメーター、データサイズ制限、レート制限、タイムアウトなどの詳細な失敗情報を提供します。
API
変更
-
PlanetKitCallclass 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) -
PlanetKitConferenceclass 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)
追加
PlanetKitSendShortDataFailReasonenum 1-to-1 callGroup callcase none- 成功case invalidParameter- 誤った入力パラメーター(例:空データ)case tooLongDataType- データタイプが100バイトを超過case tooLongData- データペイロードが800バイトを超過case tooFrequent- レート制限を超過(最大1秒あたり1回)case timeout- 送信処理のタイムアウト発生case internalError- 内部エラー
画面共有の無効化の理由を渡す
ピアが画面共有を中止すると、他の参加者にdisabledReasonを渡します。
- グループ通話では、
PlanetKitPeerControlDelegate.didUpdateScreenShareとPlanetKitConferenceScreenShareUpdateParamにdisabledReasonが含まれます。 - 1対1通話では、
PlanetKitCallDelegate.peerDidStopScreenShareのreasonパラメータータイプをInt32からNSNumber?に変更しました。 disabledReasonの有効範囲は、0~39です。
API
変更
-
PlanetKitPeerControlDelegateprotocol Group call以前のバージョン PlanetKit 7.0 func didUpdateScreenShare(_ peerControl: PlanetKitPeerControl, subgroup: PlanetKitSubgroup, status: PlanetKitScreenShareStatus)func didUpdateScreenShare(_ peerControl: PlanetKitPeerControl, subgroup: PlanetKitSubgroup, status: PlanetKitScreenShareStatus, disabledReason: NSNumber?) -
PlanetKitCallDelegateprotocol 1-to-1 call以前のバージョン PlanetKit 7.0 func peerDidStopScreenShare(_ call: PlanetKitCall, reason: Int32)func peerDidStopScreenShare(_ call: PlanetKitCall, reason: NSNumber?)
追加
PlanetKitConferenceScreenShareUpdateParamclass Group calllet disabledReason: NSNumber?
ビデオモディファイアーでPlanetKitVideoBufferメンバーの修正制限
ビデオモディファイアー内で意図しない修正が発生するのを防ぐため、sampleBufferを除くPlanetKitVideoBufferのすべての属性を読み取り専用に変更しました。
sampleBufferを修正するときは、次の制約を適用します。これに違反すると、フレームがドロップされ、didEncounterError(_:)を通じてエラーが報告されます。- 元の解像度を超えるアップスケーリングは許容されません。
- ピクセルフォーマットの変更は許容されません。
API
変更
-
PlanetKitVideoBufferclass 1-to-1 callGroup call以前のバージョン PlanetKit 7.0 var timestamp: CMTimelet timestamp: CMTimevar rotation: PlanetKitVideoRotationlet rotation: PlanetKitVideoRotationvar position: PlanetKitCameraPositionlet position: PlanetKitCameraPositionvar sender: PlanetKitUserId?let sender: PlanetKitUserId?var source: PlanetKitVideoSourcelet source: PlanetKitVideoSource
追加
-
PlanetKitVideoModifierDelegateprotocol 1-to-1 callGroup callfunc didEncounterError(_ error: PlanetKitVideoModifierError)
-
PlanetKitVideoModifierErrorenum 1-to-1 callGroup callcase videoFrameRejectedByUpscalingcase 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の改善
PlanetKitCallとPlanetKitConferenceに重複して存在していたビデオモディファイアーとレシーバーの属性を削除しました。今後は、代わりにPlanetKitCameraManager.modifierを使用してください。
PlanetKitCameraManager.previewModifierはプレビューだけでなく、送信ビデオストリームにも影響することを反映してmodifierに名前を変更しました。PlanetKitVideoStream.modifierはPlanetKitCameraManager.modifierと重複しているため、削除しました。- 画面共有の修正は、新しく追加された
myScreenShareModifier属性を使用してください。
API
変更
-
PlanetKitCameraManagerclass 1-to-1 callGroup call以前のバージョン PlanetKit 7.0 var previewModifier: PlanetKitVideoModifierDelegate?var modifier: PlanetKitVideoModifierDelegate?
追加
-
PlanetKitCallclass 1-to-1 callweak var myScreenShareModifier: PlanetKitVideoModifierDelegate?
-
PlanetKitConferenceclass Group callweak var myScreenShareModifier: PlanetKitVideoModifierDelegate?
削除
-
PlanetKitCallclass 1-to-1 callweak var myVideoModifier: PlanetKitVideoModifierDelegate?
-
PlanetKitConferenceclass Group callweak var myVideoModifier: PlanetKitVideoModifierDelegate?weak var myVideoReceiver: PlanetKitVideoOutputDelegate?
-
PlanetKitVideoStreamclass 1-to-1 callGroup callweak 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
変更
-
PlanetKitAudioManagerclass 1-to-1 callGroup call以前のバージョン PlanetKit 7.0 func resetCustomMicToDefaultMic()func clearCustomMic()func resetCustomSpeakerToDefaultSpeaker()func clearCustomSpeaker()
優先サンプリングレートをプリセットに置き換え
PlanetKitAudioManagerのサンプリングレート属性タイプをFloat64からPlanetKitAudioSampleRate enumに変更しました。
PlanetKitAudioSampleRateenumは、サポートされているサンプリングレートの事前定義された集合を提供します。- 設定されたサンプリングレートは優先値です。PlanetKitは設定されたレートでオーディオセッションを開くために最善を尽くしますが、必要に応じてサポートされている最も近いレートに置き換えることができます。
API
変更
-
PlanetKitAudioManagerclass 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 }
追加
PlanetKitAudioSampleRateenum 1-to-1 callGroup callcase sampleRate16k- 16,000 Hzcase sampleRate32k- 32,000 Hzcase sampleRate48k- 48,000 Hzvar floatValue: Float64
API名の誤字修正
正確性とネーミングの一貫性を高めるため、API名の誤字を修正しました。
API
変更
-
PlanetKitAudioManagerclass 1-to-1 callGroup call以前のバージョン PlanetKit 7.0 func startMicPreview(_ preview: PlanetKitAudioMicPreviewDelegate, volumeInternal: TimeInterval) -> Boolfunc startMicPreview(_ preview: PlanetKitAudioMicPreviewDelegate, volumeInterval: TimeInterval) -> Bool -
PlanetKitStatistics.Videoclass 1-to-1 callGroup call以前のバージョン PlanetKit 7.0 let witdh: UInt16let width: UInt16 -
PlanetKitStatistics.PeerVideoclass Group call以前のバージョン PlanetKit 7.0 let subGroupName: String?let subgroupName: String? -
PlanetKitStatistics.PeerScreenShareclass Group call以前のバージョン PlanetKit 7.0 let subGroupName: String?let subgroupName: String?
(iOS)PlanetKitAutoGainControlModeからhardware削除
iOSからPlanetKitAutoGainControlModeのhardwareケースを削除しました。
API
削除
- (iOSのみ)
PlanetKitAutoGainControlModeenum1-to-1 callGroup callcase hardware
(macOS)PlanetKitAutoGainControlModeにhardwareEchoTolerance追加
macOSでPlanetKitAutoGainControlModeにhardwareEchoToleranceケースを追加しました。このモードは、通話環境にエコーがある場合でも、スピーカーの音声レベルを基準にして入力音量を調整します。
API
追加
- (macOSのみ)
PlanetKitAutoGainControlModeenum 1-to-1 callGroup callcase hardwareEchoTolerance