リリースノート
iOS/macOS向けPlanetKit 6.0のリリースノートです。
PlanetKit 6.0
リリース日:2025-05-16
カメラデリゲートのインタフェース改善
PlanetKitVideoCaptureDeviceInfoパラメーターでビデオキャプチャーのデバイスについて、より詳細な情報を提供するようにPlanetKitCameraDelegateプロトコルをアップデートしました。
API
変更
-
PlanetKitCameraDelegateprotocol 1-to-1 callGroup call以前のバージョン PlanetKit 6.0 func didStart()func didStart(_ deviceInfo: PlanetKitVideoCaptureDeviceInfo)func didStop(_ error: NSError?)func didStop(_ deviceInfo: PlanetKitVideoCaptureDeviceInfo)
追加
PlanetKitCameraDelegateprotocol 1-to-1 callGroup callfunc didUpdate(_ deviceInfo: PlanetKitVideoCaptureDeviceInfo?)func didFail(_ error: NSError, deviceInfo: PlanetKitVideoCaptureDeviceInfo?)
ビデオ性能の設定APIの改善
ビデオ性能(capability)設定をPlanetKitManagerから行うように変更し、明確なAPIネーミングで一貫性を改善しました。
- ビデオハードウェアコーデックの設定は、これで各1対1通話またはグループ通話ごとに設定する代わりに
PlanetKitManagerによって設定されます。 - ビデオ性能の設定APIでサムネイル解像度はサポートされなくなりました。
API
変更
-
PlanetKitVideoCapabilityclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0 var resolution: PlanetKitVideoResolutionCapability { get set }var maxResolution: PlanetKitVideoResolutionCapability { get }var fps: PlanetKitVideoFps { get set }var maxFps: PlanetKitVideoFps { get }init(resolution: PlanetKitVideoResolutionCapability, fps: PlanetKitVideoFps)init(maxResolution: PlanetKitVideoResolutionCapability, maxFps: PlanetKitVideoFps) -
パラメーターの名前変更 1-to-1 callGroup call
以前のバージョン PlanetKit 6.0 PlanetKitCallConnectedParam.isVideoHwCodecEnabledPlanetKitCallConnectedParam.isVideoHardwareCodecEnabledPlanetKitConferenceConnectedParam.isVideoHwCodecEnabledPlanetKitConferenceConnectedParam.isVideoHardwareCodecEnabled
追加
PlanetKitVideoResolutionCapabilityenum 1-to-1 callGroup callcase qvga- 最大解像度 320x240case vga- 最大解像度 640x480case hd- 最大解像度 1280x960case fhd- 最大解像度 1920x1080
PlanetKitVideoCapabilityUsageenum 1-to-1 callGroup callcase callSendcase callReceivecase conferenceSendcase conferenceReceive
PlanetKitPreferredHardwareCodecclass 1-to-1 callGroup callvar callVideoSend: Bool { get }var callVideoReceive: Bool { get }var conferenceVideoSend: Bool { get }var conferenceVideoReceive: Bool { get }init(callVideoSend: Bool, callVideoReceive: Bool, conferenceVideoSend: Bool, conferenceVideoReceive: Bool)
PlanetKitManagerclass 1-to-1 callGroup callfunc getDeviceDefaultVideoCapability(usage: PlanetKitVideoCapabilityUsage) -> PlanetKitVideoCapabilityfunc getVideoPreferredHardwareCodec() -> PlanetKitPreferredHardwareCodec
PlanetKitInitialSettingBuilderclass 1-to-1 callGroup callfunc withSetPreferredHardwareCodecKey(preferredHardwareCodec: PlanetKitPreferredHardwareCodec) -> PlanetKitInitialSettingBuilder
削除
PlanetKitCallclass 1-to-1 callvar myVideoSendCapability: PlanetKitVideoCapability { get }var myVideoReceiveCapability: PlanetKitVideoCapability { get }
PlanetKitConferenceclass Group callvar myVideoSendCapability: PlanetKitVideoCapability { get }var myVideoRecvPreferredHwCodec: Bool { get }
PlanetKitVideoCapabilityclass 1-to-1 callGroup callvar preferredHwCodec: Boolstatic var callSendDefault: PlanetKitVideoCapabilitystatic var callReceiveDefault: PlanetKitVideoCapabilitystatic var conferenceSendDefault: PlanetKitVideoCapability
PlanetKitJoinConferenceSettingBuilderextension Group callfunc withMyVideoRecvPreferredHwCodecKey(enable: Bool) -> PlanetKitJoinConferenceSettingBuilder
マイグレーションガイド
PlanetKit初期化時のハードウェアコーデックの設定
-
以前バージョン
// Configure hardware codec for specific call/conference
let callSettings = PlanetKitMakeCallSettingBuilder()
.withVideoSendCapabilityKey(capability: capability)
.build()
let conferenceSettings = PlanetKitJoinConferenceSettingBuilder()
.withMyVideoRecvPreferredHwCodecKey(enable: true)
.build() -
新規バージョン
// 1. Create hardware codec preferences
let preferredHardwareCodec = PlanetKitPreferredHardwareCodec(
callVideoSend: true,
callVideoReceive: true,
conferenceVideoSend: true,
conferenceVideoReceive: true
)
// 2. Configure during initialization
let initializeSettings = PlanetKitInitializeSettingsBuilder()
.withSetPreferredHardwareCodecKey(preferredHardwareCodec: preferredHardwareCodec)
.build()
PlanetKitManager.shared.initialize(initialSettings: initializeSettings)
初期化後のハードウェアコーデック設定のアップデート
// 1. Create new hardware codec preferences
let preferredHardwareCodec = PlanetKitPreferredHardwareCodec(
callVideoSend: true,
callVideoReceive: true,
conferenceVideoSend: true,
conferenceVideoReceive: true
)
// 2. Update settings
let newSettings = PlanetKitInitializeSettingsBuilder()
.withSetPreferredHardwareCodecKey(preferredHardwareCodec: preferredHardwareCodec)
.build()
PlanetKitManager.shared.update(initialSettings: newSettings)
デバイスの基本的なビデオ性能のインポート
// Get default capability for call sending
let callSendCapability = PlanetKitManager.shared.getDeviceDefaultVideoCapability(usage: .callSend)
// Get default capability for conference receiving
let conferenceReceiveCapability = PlanetKitManager.shared.getDeviceDefaultVideoCapability(usage: .conferenceReceive)
現在のハードウェアコーデック設定のインポート
let hardwareCodecSettings = PlanetKitManager.shared.getVideoPreferredHardwareCodec()
let isHardwareEnabledForCallSend = hardwareCodecSettings.callVideoSend
グループ通話ピアのボリューム設定APIの改善
以前のサブグループ基盤のボリューム制御を個々のピアに対する統合ボリューム設定APIに置き換えました。
- 6.0以前のバージョンではサブグループ別にボリュームを制御しましたが、6.0バージョンからはサブグループに関係なくボリュームを設定できます。
- 上記の仕様変更により、関連APIを修正しました。
API
変更
-
PlanetKitConferencePeerclass Group call以前のバージョン PlanetKit 6.0 func volumeLevelSetting(subgroupName: String?) throws -> PlanetKitVolumeLevelfunc volumeLevelSetting() throws -> PlanetKitVolumeLevel
追加
PlanetKitConferencePeerControlclass Group callfunc setVolumeLevelSetting(_ volumeLevel: Int8, completion: @escaping (Bool)->Void)
削除
PlanetKitSubgroupManagerclass Group callfunc setPeerVolumeLevelSetting(_ volumeLevel: Int8, peerId: PlanetKitUserId, subgroupName: String?, allSubgroupsPeerSubscribed: Bool, completion: @escaping (Bool)->Void)
通話中のマイク使用有無によってマイクデバイスを制御
- ミュートや通話一時停止など、通話中にマイクを使用しないときは、PlanetKitがマイクデバイスをオフにするように変更しました。
- オーディオ管理システムを改善するため、関心の分離(separation of concerns)を強化するリファクタリングを行いました。
PlanetKitAudioSessionでは、コアのオーディオセッション機能をそのまま提供します。PlanetKitAudioManagerで高レベルのオーディオ制御機能を提供します。
詳しくは、APIドキュメントを参照してください。
既知の問題
macOS 12および13では、通話がミュートになったり、一時停止中にもマイクインジケーターがオンになった状態が維持されます。 この状態で相手にオーディオデータが送信されることはありません。
API
変更
-
オーディオ管理システムのリファクタリング1-to-1 callGroup call
- コアのオーディオセッション機能は、
PlanetKitAudioSessionに移動 - 高レベルのオーディオ制御機能は、
PlanetKitAudioManagerで提供
- コアのオーディオセッション機能は、
-
PlanetKitAudioDeviceTypeenum 1-to-1 callGroup call以前のバージョン PlanetKit 6.0 case spkcase speaker -
PlanetKitMakeCallSettingBuilderclass 1-to-1 call以前のバージョン PlanetKit 6.0 func build() -> [String: Any]func build() throws -> [String: Any](iOSのみ該当) -
PlanetKitVerifyCallSettingBuilderclass 1-to-1 call以前のバージョン PlanetKit 6.0 func build() -> [String: Any]func build() throws -> [String: Any](iOSのみ該当) -
PlanetKitJoinConferenceSettingBuilderclass Group call以前のバージョン PlanetKit 6.0 func build() -> [String: Any]func build() throws -> [String: Any](iOSのみ該当)
追加
PlanetKitAudioManagerclass 1-to-1 callGroup callstatic var shared: PlanetKitAudioManager { get }var session: PlanetKitAudioSession { get }func startMicPreview(_ preview: PlanetKitAudioMicPreviewDelegate, volumeInternal: TimeInterval = 1.0) -> Boolfunc stopMicPreview()func playFile(fileResourceUrl: URL, type: String, loopCount: Int32 = -1)func playFile(fileResourceUrl: URL, type: String, loopCount: Int32, completion: @escaping (Bool) -> Void)func playStop(type: String)func setCustomMic(_ customMic: PlanetKitCustomMic)func resetCustomMicToDefaultMic()func setCustomSpeaker(_ customSpeaker: PlanetKitCustomSpeaker)func resetCustomSpeakerToDefaultSpeaker()func addVolumeDelegate(_ delegate: PlanetKitAudioVolumeDelegate, for type: PlanetKitAudioDeviceType)func removeVolumeDelegate(_ delegate: PlanetKitAudioVolumeDelegate, for type: PlanetKitAudioDeviceType)var vpioEnabled: Bool { get set }var defaultMicSampleRate: Float64 { get set }var defaultSpeakerSampleRate: Float64 { get set }var openSettings: PlanetKitAudioSessionSettings? { get set }var closeSettings: PlanetKitAudioSessionSettings? { get set }var defaultIOBufferDuration: Float64 { get set }var micVolume: Float { get }var speakerVolume: Float { get }func setMicVolume(_ volume: Float)func addAudioRouteChangeDelegate(_ delegate: PlanetKitAudioRouteChangeDelegate)func removeAudioRouteChangeDelegate(_ delegate: PlanetKitAudioRouteChangeDelegate)var isBluetoothInput: Bool { get }var isBuiltInOutput: Bool { get }var devices: [PlanetKitAudioDevice] { get }func addDeviceChangeDelegate(_ delegate: PlanetKitAudioDeviceChangeDelegate)func removeDeviceChangeDelegate(_ delegate: PlanetKitAudioDeviceChangeDelegate)
PlanetKitAudioSessionclass 1-to-1 callGroup callvar micEnabled: Bool { get }var speakerEnabled: Bool { get }var isStarted: Bool { get }func addMicReceiver(_ micReceiver: PlanetKitAudioMicCaptureDelegate)func removeMicReceiver(_ micReceiver: PlanetKitAudioMicCaptureDelegate)var micModifier: PlanetKitAudioMicCaptureDelegate? { get set }func addSpeakerReceiver(_ speakerReceiver: PlanetKitAudioSpkPlayDelegate)func removeSpeakerReceiver(_ speakerReceiver: PlanetKitAudioSpkPlayDelegate)var speakerModifier: PlanetKitAudioSpkPlayDelegate? { get set }var speakerVolumeReceiver: PlanetKitAudioDeviceVolumeDelegate? { get set }var speakerVolumeInterval: TimeInterval { get set }func speakerOut(_ out: Bool)var isSpeakerOut: Boolvar micDevice: PlanetKitAudioDevice? { get }var speakerDevice: PlanetKitAudioDevice? { get }var micVolume: Float { get }var speakerVolume: Float { get }func setVolume(_ volume: Float, for type: PlanetKitAudioDeviceType)func change(micDevice: PlanetKitAudioDevice?, completion: @escaping (NSError?)->Void)func change(speakerDevice: PlanetKitAudioDevice?, completion: @escaping (NSError?)->Void)func setPreferredDefaultDevice(type: PlanetKitAudioDeviceType) throws
PlanetKitCustomMicclass 1-to-1 callGroup callfunc sendAudio(audioBuffer: PlanetKitAudioBuffer)
PlanetKitCustomSpeakerclass 1-to-1 callGroup callfunc playAudio(audioBuffer: PlanetKitAudioBuffer) -> Int32
PlanetKitAudioBufferclass 1-to-1 callGroup call- オーディオデータの保存および管理のためのプロパティ
- オーディオバッファを作成するためのさまざまなイニシャライザー(initializer)
PlanetKitAudioMicPreviewDelegateprotocol 1-to-1 callGroup callfunc volumeDidUpdate(micVolume: Float)
削除
PlanetKitAudioMicclass 1-to-1 callGroup callPlanetKitAudioSpkclass 1-to-1 callGroup callPlanetKitAudioMicSpkclass 1-to-1 callGroup callPlanetKitAudioMicControllableprotocol 1-to-1 callGroup callPlanetKitAudioSpkControllableprotocol 1-to-1 callGroup callPlanetKitCallclass 1-to-1 callvar audioManager: PlanetKitAudioManager { get }weak var spkModifier: PlanetKitAudioSpkPlayDelegate? { get set }weak var spkReceiver: PlanetKitAudioSpkPlayDelegate? { get set }weak var micModifier: PlanetKitAudioMicCaptureDelegate? { get set }weak var micReceiver: PlanetKitAudioMicCaptureDelegate? { get set }
PlanetKitConferenceclass Group callvar audioManager: PlanetKitAudioManager { get }weak var spkModifier: PlanetKitAudioSpkPlayDelegate? { get set }weak var spkReceiver: PlanetKitAudioSpkPlayDelegate? { get set }weak var micModifier: PlanetKitAudioMicCaptureDelegate? { get set }weak var micReceiver: PlanetKitAudioMicCaptureDelegate? { get set }
PlanetKitMakeCallSettingBuilderclass 1-to-1 callfunc withCustomMicKey(mic: PlanetKitAudioMicControllable) -> PlanetKitMakeCallSettingBuilderfunc withCustomSpkKey(spk: PlanetKitAudioSpkControllable) -> PlanetKitMakeCallSettingBuilder
PlanetKitVerifyCallSettingBuilderclass 1-to-1 callfunc withCustomMicKey(mic: PlanetKitAudioMicControllable) -> PlanetKitVerifyCallSettingBuilderfunc withCustomSpkKey(spk: PlanetKitAudioSpkControllable) -> PlanetKitVerifyCallSettingBuilder
PlanetKitJoinConferenceSettingBuilderclass Group callfunc withCustomMicKey(mic: PlanetKitAudioMicControllable) -> PlanetKitJoinConferenceSettingBuilderfunc withCustomSpkKey(spk: PlanetKitAudioSpkControllable) -> PlanetKitJoinConferenceSettingBuilder
サンプルコード
オーディオ設定でマイク/スピーカーデバイスのボリュームをプレビュー
class ViewController: UIViewController {
....
override func viewDidLoad() {
super.viewDidLoad()
let currentMicVolume = PlanetKitAudioManager.shared.session.micVolume
let currentSpeakerVolume = PlanetKitAudioManager.shared.session.speakerVolume
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
PlanetKitAudioManager.shared.addVolumeDelegate(self, for: .mic)
PlanetKitAudioManager.shared.addVolumeDelegate(self, for: .speaker)
PlanetKitAudioManager.shared.startMicPreview(self, volumeInternal: 0.1)
}
override func viewDidDisappear() {
super.viewDidDisappear()
PlanetKitAudioManager.shared.removeVolumeDelegate(self, for: .mic)
PlanetKitAudioManager.shared.removeVolumeDelegate(self, for: .speaker)
PlanetKitAudioManager.shared.stopMicPreview()
}
}
extension ViewController: PlanetKitAudioMicPreviewDelegate {
func volumeDidUpdate(micVolume: Float) {
DispatchQueue.main.async {
// TODO: Update mic volume level in the UI.
}
}
}
extension ViewController: PlanetKitAudioVolumeDelegate {
func didChangeVolume(_ type: PlanetKitAudioDeviceType, volume: Float) {
DispatchQueue.main.async {
// TODO: Update mic/speaker volume in the UI.
}
}
}
カスタムマイクを使用
class YourCustomMicManager {
....
func setCustomMic() {
var input = AudioFileInput(url: url, call: call)
PlanetKitAudioManager.shared.setCustomMic(input)
}
func resetMic(_ device: PlanetKitAudioDevice?) {
PlanetKitAudioManager.shared.resetCustomMicToDefaultMic()
guard device?.deviceID != PlanetKitAudioManager.shared.session.micDevice?.deviceID else {
return
}
PlanetKitAudioManager.shared.session.change(micDevice: device) { error in
if let error = error {
print(error)
}
}
}
}
// TODO: Implement your own custom mic.
class AudioFileInput: PlanetKitCustomMic {
init(url: URL, call: PlanetKitCall) {
....
}
}
(macOSのみ該当)マイク/スピーカーデバイスのリストを取得
....
private var micDevices = [PlanetKitAudioDevice]()
private var speakerDevices = [PlanetKitAudioDevice]()
func refreshDevices() {
micDevices.removeAll()
speakerDevices.removeAll()
let devices = PlanetKitAudioManager.shared.devices
for device in devices {
if device.isCapturable {
micDevices.append(device)
}
if device.isPlayable {
speakerDevices.append(device)
}
}
if let micDevice = PlanetKitAudioManager.shared.session.micDevice {
refreshCurrentDevice(micDevice, type: .mic)
}
if let speakerDevice = PlanetKitAudioManager.shared.session.speakerDevice {
refreshCurrentDevice(speakerDevice, type: .speaker)
}
}
func refreshCurrentDevice(_ device: PlanetKitAudioDevice?, type: PlanetKitAudioDeviceType) {
// TODO: Update the current audio device in the UI.
}
(macOSのみ該当)マイク/スピーカーデバイスの変更事項をモニタリング
class ViewController: UIViewController {
....
override func viewWillAppear() {
super.viewWillAppear()
PlanetKitAudioManager.shared.addDeviceChangeDelegate(self)
}
override func viewDidDisappear() {
super.viewDidDisappear()
PlanetKitAudioManager.shared.removeDeviceChangeDelegate(self)
}
}
extension ViewController: PlanetKitAudioDeviceChangeDelegate {
func didAudioDevicesUpdate(devices: [PlanetKitAudioDevice]) {
DispatchQueue.main.async {
self.refreshDevices()
}
}
func didAudioDeviceChange(device: PlanetKitAudioDevice?, type: PlanetKitAudioDeviceType) {
DispatchQueue.main.async {
// TODO: Update the currently selected audio device in the UI.
}
}
....
}
(macOSのみ該当)現在のマイク/スピーカーデバイスを変更
....
@IBAction func deviceChanged(_ sender: NSPopUpButton) {
if sender === micDevicesButton {
let device = micDevices[sender.indexOfSelectedItem]
PlanetKitAudioManager.shared.session.change(micDevice: device) { error in
if let error = error {
print(error)
}
}
}
else {
let device = speakerDevices[sender.indexOfSelectedItem]
PlanetKitAudioManager.shared.session.change(speakerDevice: device) { error in
if let error = error {
print(error)
}
}
}
}
カメラデバイスの切り替えAPI改善
カスタムカメラを使用する場合は、現在使用中のカメラデバイスから別のカメラデバイスに切り替えることはできません。この状況でエラーが発生するように関連APIを改善しました。
API
変更
-
PlanetKitCameraManagerclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0 func change(deviceInfo: PlanetKitVideoCaptureDeviceInfo)func change(deviceInfo: PlanetKitVideoCaptureDeviceInfo) throws
カスタムカメラのAPI名変更
カスタムカメラからデフォルトカメラに切り替える関数名を意味がより明確に伝わるように変更しました。
API
変更
-
PlanetKitCameraManagerclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0 func resetToDefaultCamera()func resetCustomCameraToDefaultCamera()
通話受信中にクラウド通話録音の有効化の可否確認機能を追加
PlanetKitCCParamに通話受信中にクラウド通話録音が有効になっているかどうかを確認できるフィールドを追加しました。
API
追加
PlanetKitCCParamclass 1-to-1 callvar isRecordOnCloudEnabled: Bool
ビデオ通話を有効化時にレスポンスタイプの設定APIを除去
- これで、1対1音声通話で相手がビデオ通話を有効にすると、ローカルユーザーのビデオは常に一時停止状態に設定されます。
- 以前のバージョンでは、相手が音声通話をビデオ通話に切り替えるとき、ローカルユーザーのビデオ送信を自動的に開始するかどうか
withResponseOnEnableVideo()を使用して決定できました。 - しかし、このAPIは個人情報保護の問題と潜在的な誤用の可能性があるため、バージョン6.0から削除し、
PlanetKitCallDelegate.videoEnabledByPeerはPlanetKitCallDelegate.videoEnabledByPeerAndMyVideoPausedに変更しました。 - したがって、6.0 バージョンからは、相手がビデオ通話を有効にするとき、ローカルユーザーのビデオは一時停止された状態のままになります。
- 以前のバージョンでは、相手が音声通話をビデオ通話に切り替えるとき、ローカルユーザーのビデオ送信を自動的に開始するかどうか
- この変更により、以前
PlanetKitResponseOnEnableVideo.sendを利用していたコードは、videoEnabledByPeerAndMyVideoPausedイベントを受信した後、手動でビデオを再生する方式にアップデートする必要があります。- 詳しくは、以下のサンプルコードを参照してください。
サンプルコード
- 6.0バージョンで以前
PlanetKitResponseOnEnableVideo.sendを使用して実装していた動作を再現するには、次のように実装します。
class CallDelegate: PlanetKitCallDelegate {
func videoEnabledByPeerAndMyVideoPaused(_ call: PlanetKitCall) {
// Your existing code...
// Add this to replicate PlanetKitResponseOnEnableVideo.send behavior
call.resumeMyVideo()
}
}
API
変更
-
PlanetKitCallDelegateprotocol 1-to-1 call以前のバージョン PlanetKit 6.0.0 func videoEnabledByPeer(_ call: PlanetKitCall)func videoEnabledByPeerAndMyVideoPaused(_ call: PlanetKitCall)
削除
PlanetKitResponseOnEnableVideoenum 1-to-1 callPlanetKitCallclass 1-to-1 callvar responseOnEnableVideo: PlanetKitResponseOnEnableVideo { get }
PlanetKitMakeCallSettingBuilderclass 1-to-1 callfunc withResponseOnEnableVideo(response: PlanetKitResponseOnEnableVideo)
PlanetKitVerifyCallSettingBuilderclass 1-to-1 callfunc withResponseOnEnableVideo(response: PlanetKitResponseOnEnableVideo)
設定ビルダーでのエラー処理のためのPlanetKitSettingError追加
PlanetKitSettingError列挙型は、設定ビルダーに対する標準化されたエラー処理を提供します。
API
追加
PlanetKitSettingErrorenum 1-to-1 callGroup call
(iOS)通話設定作成時のPlanetKitCallKitSetting必須化
PlanetKit SDKはCallKit連動のために以下3つのオプションを提供します。
- ユーザー定義のCallKit実装
- PlanetKit内部のCallKit実装
- CallKitを連動しない
今回のバージョンからiOSでは、通話を作成したり、通話を受信したり、グループ通話に参加したりするための設定を作成する際、PlanetKitCallKitSettingをPlanetKitCallKitTypeと共に設定する必要があります。設定しない場合、PlanetKitMakeCallSettingBuilder.build()、PlanetKitVerifyCallSettingBuilder.build()、または PlanetKitJoinConferenceSettingBuilder.build()で通話設定を作成する時にPlanetKitSettingError.callKitSettingNotSetエラーが発生します。
PlanetKitCallKitTypeが.userまたは.planetkitに設定された場合、PlanetKitはマイクインジケーターの制御をCallKitに委任することに注意してください。
API
変更
-
PlanetKitMakeCallSettingBuilderclass 1-to-1 call以前のバージョン PlanetKit 6.0 func build() -> [String: Any]func build() throws -> [String: Any](iOSのみ該当) -
PlanetKitVerifyCallSettingBuilderclass 1-to-1 call以前のバージョン PlanetKit 6.0 func build() -> [String: Any]func build() throws -> [String: Any](iOSのみ該当) -
PlanetKitJoinConferenceSettingBuilderclass Group call以前のバージョン PlanetKit 6.0 func build() -> [String: Any]func build() throws -> [String: Any](iOSのみ該当)
サンプルコード
PlanetKitCallKitTypeによってPlanetKitCallKitSetting作成
func createUserCallKitSetting() -> PlanetKitCallKitSetting {
// Select the appropriate CallKit integration option from the examples below
// Option 1: When integrating the user CallKit implementation
let callKitSetting = PlanetKitCallKitSetting(type: .user, param: nil)
// Option 2: When using PlanetKit internal CallKit implementation
let callkitParam = PlanetKitCallKitParam(
appName: "Example app",
callerName: "caller name",
isVideo: true,
ringtoneSound: nil,
icon: "example icon",
addCallToList: true,
supportsHolding: true
)
let callKitSetting = PlanetKitCallKitSetting(type: .planetkit, param: callkitParam)
// Option 3: When CallKit is not used in the app
let callKitSetting = PlanetKitCallKitSetting(type: .none, param: nil)
return callKitSetting
}