リリースノート"
iOS/macOS向けPlanetKit 6.0のリリースノートです。
PlanetKit 6.0
リリース日:2025-05-16
カメラデリゲートのインタフェース改善
PlanetKitVideoCaptureDeviceInfo
パラメーターでビデオキャプチャーのデバイスについて、より詳細な情報を提供するようにPlanetKitCameraDelegate
プロトコルをアップデートしました。
API
変更
-
PlanetKitCameraDelegate
protocol 1-to-1 callGroup call以前バージョン PlanetKit 6.0 func didStart()
func didStart(_ deviceInfo: PlanetKitVideoCaptureDeviceInfo)
func didStop(_ error: NSError?)
func didStop(_ deviceInfo: PlanetKitVideoCaptureDeviceInfo)
追加
PlanetKitCameraDelegate
protocol 1-to-1 callGroup callfunc didUpdate(_ deviceInfo: PlanetKitVideoCaptureDeviceInfo?)
func didFail(_ error: NSError, deviceInfo: PlanetKitVideoCaptureDeviceInfo?)
ビデオ性能の設定APIの改善
ビデオ性能(capability)設定をPlanetKitManager
から行うように変更し、明確なAPIネーミングで一貫性を改善しました。
- ビデオハードウェアコーデックの設定は、これで各1対1通話またはグループ通話ごとに設定する代わりに
PlanetKitManager
によって設定されます。 - ビデオ性能の設定APIでサムネイル解像度はサポートされなくなりました。
API
変更
-
PlanetKitVideoCapability
class 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.isVideoHwCodecEnabled
PlanetKitCallConnectedParam.isVideoHardwareCodecEnabled
PlanetKitConferenceConnectedParam.isVideoHwCodecEnabled
PlanetKitConferenceConnectedParam.isVideoHardwareCodecEnabled
追加
PlanetKitVideoResolutionCapability
enum 1-to-1 callGroup callcase qvga
- 最大解像度 320x240case vga
- 最大解像度 640x480case hd
- 最大解像度 1280x960case fhd
- 最大解像度 1920x1080
PlanetKitVideoCapabilityUsage
enum 1-to-1 callGroup callcase callSend
case callReceive
case conferenceSend
case conferenceReceive
PlanetKitPreferredHardwareCodec
class 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)
PlanetKitManager
class 1-to-1 callGroup callfunc getDeviceDefaultVideoCapability(usage: PlanetKitVideoCapabilityUsage) -> PlanetKitVideoCapability
func getVideoPreferredHardwareCodec() -> PlanetKitPreferredHardwareCodec
PlanetKitInitialSettingBuilder
class 1-to-1 callGroup callfunc withSetPreferredHardwareCodecKey(preferredHardwareCodec: PlanetKitPreferredHardwareCodec) -> PlanetKitInitialSettingBuilder
削除
PlanetKitCall
class 1-to-1 callvar myVideoSendCapability: PlanetKitVideoCapability { get }
var myVideoReceiveCapability: PlanetKitVideoCapability { get }
PlanetKitConference
class Group callvar myVideoSendCapability: PlanetKitVideoCapability { get }
var myVideoRecvPreferredHwCodec: Bool { get }
PlanetKitVideoCapability
class 1-to-1 callGroup callvar preferredHwCodec: Bool
static var callSendDefault: PlanetKitVideoCapability
static var callReceiveDefault: PlanetKitVideoCapability
static var conferenceSendDefault: PlanetKitVideoCapability
PlanetKitJoinConferenceSettingBuilder
extension 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
変更
-
PlanetKitConferencePeer
class Group call以前バージョン PlanetKit 6.0 func volumeLevelSetting(subgroupName: String?) throws -> PlanetKitVolumeLevel
func volumeLevelSetting() throws -> PlanetKitVolumeLevel
追加
PlanetKitConferencePeerControl
class Group callfunc setVolumeLevelSetting(_ volumeLevel: Int8, completion: @escaping (Bool)->Void)
削除
PlanetKitSubgroupManager
class 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
で提供
- コアのオーディオセッション機能は、
-
PlanetKitAudioDeviceType
enum 1-to-1 callGroup call以前バージョン PlanetKit 6.0 case spk
case speaker
-
PlanetKitMakeCallSettingBuilder
class 1-to-1 call以前バージョン PlanetKit 6.0 func build() -> [String: Any]
func build() throws -> [String: Any]
(iOSのみ該当) -
PlanetKitVerifyCallSettingBuilder
class 1-to-1 call以前バージョン PlanetKit 6.0 func build() -> [String: Any]
func build() throws -> [String: Any]
(iOSのみ該当) -
PlanetKitJoinConferenceSettingBuilder
class Group call以前バージョン PlanetKit 6.0 func build() -> [String: Any]
func build() throws -> [String: Any]
(iOSのみ該当)
追加
PlanetKitAudioManager
class 1-to-1 callGroup callstatic var shared: PlanetKitAudioManager { get }
var session: PlanetKitAudioSession { get }
func startMicPreview(_ preview: PlanetKitAudioMicPreviewDelegate, volumeInternal: TimeInterval = 1.0) -> Bool
func 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)
PlanetKitAudioSession
class 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: Bool
var 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
PlanetKitCustomMic
class 1-to-1 callGroup callfunc sendAudio(audioBuffer: PlanetKitAudioBuffer)
PlanetKitCustomSpeaker
class 1-to-1 callGroup callfunc playAudio(audioBuffer: PlanetKitAudioBuffer) -> Int32
PlanetKitAudioBuffer
class 1-to-1 callGroup call- オーディオデータの保存および管理のためのプロパティ
- オーディオバッファを作成するためのさまざまなイニシャライザー(initializer)
PlanetKitAudioMicPreviewDelegate
protocol 1-to-1 callGroup callfunc volumeDidUpdate(micVolume: Float)
削除
PlanetKitAudioMic
class 1-to-1 callGroup callPlanetKitAudioSpk
class 1-to-1 callGroup callPlanetKitAudioMicSpk
class 1-to-1 callGroup callPlanetKitAudioMicControllable
protocol 1-to-1 callGroup callPlanetKitAudioSpkControllable
protocol 1-to-1 callGroup callPlanetKitCall
class 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 }
PlanetKitConference
class 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 }
PlanetKitMakeCallSettingBuilder
class 1-to-1 callfunc withCustomMicKey(mic: PlanetKitAudioMicControllable) -> PlanetKitMakeCallSettingBuilder
func withCustomSpkKey(spk: PlanetKitAudioSpkControllable) -> PlanetKitMakeCallSettingBuilder
PlanetKitVerifyCallSettingBuilder
class 1-to-1 callfunc withCustomMicKey(mic: PlanetKitAudioMicControllable) -> PlanetKitVerifyCallSettingBuilder
func withCustomSpkKey(spk: PlanetKitAudioSpkControllable) -> PlanetKitVerifyCallSettingBuilder
PlanetKitJoinConferenceSettingBuilder
class Group callfunc withCustomMicKey(mic: PlanetKitAudioMicControllable) -> PlanetKitJoinConferenceSettingBuilder
func 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
変更
-
PlanetKitCameraManager
class 1-to-1 callGroup call以前バージョン PlanetKit 6.0 func change(deviceInfo: PlanetKitVideoCaptureDeviceInfo)
func change(deviceInfo: PlanetKitVideoCaptureDeviceInfo) throws
カスタムカメラのAPI名変更
カスタムカメラからデフォルトカメラに切り替える関数名を意味がより明確に伝わるように変更しました。
API
変更
-
PlanetKitCameraManager
class 1-to-1 callGroup call以前バージョン PlanetKit 6.0 func resetToDefaultCamera()
func resetCustomCameraToDefaultCamera()
通話受信中にクラウド通話録音の有効化の可否確認機能を追加
PlanetKitCCParam
に通話受信中にクラウド通話録音が有効になっているかどうかを確認できるフィールドを追加しました。
API
追加
PlanetKitCCParam
class 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
変更
-
PlanetKitCallDelegate
protocol 1-to-1 call以前バージョン PlanetKit 6.0.0 func videoEnabledByPeer(_ call: PlanetKitCall)
func videoEnabledByPeerAndMyVideoPaused(_ call: PlanetKitCall)
削除
PlanetKitResponseOnEnableVideo
enum 1-to-1 callPlanetKitCall
class 1-to-1 callvar responseOnEnableVideo: PlanetKitResponseOnEnableVideo { get }
PlanetKitMakeCallSettingBuilder
class 1-to-1 callfunc withResponseOnEnableVideo(response: PlanetKitResponseOnEnableVideo)
PlanetKitVerifyCallSettingBuilder
class 1-to-1 callfunc withResponseOnEnableVideo(response: PlanetKitResponseOnEnableVideo)
設定ビルダーでのエラー処理のためのPlanetKitSettingError
追加
PlanetKitSettingError
列挙型は、設定ビルダーに対する標準化されたエラー処理を提供します。
API
追加
PlanetKitSettingError
enum 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
変更
-
PlanetKitMakeCallSettingBuilder
class 1-to-1 call以前バージョン PlanetKit 6.0 func build() -> [String: Any]
func build() throws -> [String: Any]
(iOSのみ該当) -
PlanetKitVerifyCallSettingBuilder
class 1-to-1 call以前バージョン PlanetKit 6.0 func build() -> [String: Any]
func build() throws -> [String: Any]
(iOSのみ該当) -
PlanetKitJoinConferenceSettingBuilder
class 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
}