change defaults to support voice isolation
This commit is contained in:
@@ -79,15 +79,39 @@ public class SwiftLiveKitPlugin: NSObject, FlutterPlugin {
|
|||||||
print("[LiveKit] Configuring mode: ", configuration.mode)
|
print("[LiveKit] Configuring mode: ", configuration.mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
let session = RTCAudioSession.sharedInstance()
|
// get `RTCAudioSession` and lock
|
||||||
session.lockForConfiguration()
|
let rtcSession = RTCAudioSession.sharedInstance()
|
||||||
|
rtcSession.lockForConfiguration()
|
||||||
|
|
||||||
|
var isLocked: Bool = true
|
||||||
|
let unlock = {
|
||||||
|
guard isLocked else {
|
||||||
|
print("[LiveKit] not locked, ignoring unlock")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
rtcSession.unlockForConfiguration()
|
||||||
|
isLocked = false
|
||||||
|
}
|
||||||
|
|
||||||
|
// always `unlock()` when exiting scope, calling multiple times has no side-effect
|
||||||
defer {
|
defer {
|
||||||
session.unlockForConfiguration()
|
unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
try session.setConfiguration(configuration, active: true)
|
try rtcSession.setConfiguration(configuration, active: true)
|
||||||
print("[LiveKit] Configure success")
|
// unlock here before configuring `AVAudioSession`
|
||||||
|
// unlock()
|
||||||
|
print("[LiveKit] RTCAudioSession Configure success")
|
||||||
|
|
||||||
|
// also configure longFormAudio
|
||||||
|
// let avSession = AVAudioSession.sharedInstance()
|
||||||
|
// try avSession.setCategory(AVAudioSession.Category(rawValue: configuration.category),
|
||||||
|
// mode: AVAudioSession.Mode(rawValue: configuration.mode),
|
||||||
|
// policy: .default,
|
||||||
|
// options: configuration.categoryOptions)
|
||||||
|
// print("[LiveKit] AVAudioSession Configure success")
|
||||||
|
|
||||||
result(true)
|
result(true)
|
||||||
} catch let error {
|
} catch let error {
|
||||||
print("[LiveKit] Configure audio error: ", error)
|
print("[LiveKit] Configure audio error: ", error)
|
||||||
|
|||||||
@@ -140,7 +140,6 @@ Future<NativeAudioConfiguration> defaultNativeAudioConfigurationFunc(
|
|||||||
appleAudioCategory: AppleAudioCategory.playback,
|
appleAudioCategory: AppleAudioCategory.playback,
|
||||||
appleAudioCategoryOptions: {
|
appleAudioCategoryOptions: {
|
||||||
AppleAudioCategoryOption.mixWithOthers,
|
AppleAudioCategoryOption.mixWithOthers,
|
||||||
// IosAudioCategoryOption.duckOthers,
|
|
||||||
},
|
},
|
||||||
appleAudioMode: AppleAudioMode.spokenAudio,
|
appleAudioMode: AppleAudioMode.spokenAudio,
|
||||||
);
|
);
|
||||||
@@ -153,9 +152,8 @@ Future<NativeAudioConfiguration> defaultNativeAudioConfigurationFunc(
|
|||||||
appleAudioCategoryOptions: {
|
appleAudioCategoryOptions: {
|
||||||
AppleAudioCategoryOption.allowBluetooth,
|
AppleAudioCategoryOption.allowBluetooth,
|
||||||
AppleAudioCategoryOption.mixWithOthers,
|
AppleAudioCategoryOption.mixWithOthers,
|
||||||
// IosAudioCategoryOption.duckOthers,
|
|
||||||
},
|
},
|
||||||
appleAudioMode: AppleAudioMode.voiceChat,
|
appleAudioMode: AppleAudioMode.videoChat,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user