Fix headset input source

This commit is contained in:
Peter 2019-07-26 15:03:46 +01:00
parent 35ecbce139
commit 1b42457611

View File

@ -714,8 +714,13 @@ public final class ManagedAudioSession {
try AVAudioSession.sharedInstance().overrideOutputAudioPort(.none) try AVAudioSession.sharedInstance().overrideOutputAudioPort(.none)
} }
} }
if resetToBuiltin { if resetToBuiltin {
switch type { var updatedType = type
if case .record(false) = updatedType, self.isHeadsetPluggedInValue {
updatedType = .record(speaker: true)
}
switch updatedType {
case .record(false): case .record(false):
try AVAudioSession.sharedInstance().overrideOutputAudioPort(.speaker) try AVAudioSession.sharedInstance().overrideOutputAudioPort(.speaker)
case .voiceCall, .playWithPossiblePortOverride, .record(true): case .voiceCall, .playWithPossiblePortOverride, .record(true):
@ -723,7 +728,7 @@ public final class ManagedAudioSession {
if let routes = AVAudioSession.sharedInstance().availableInputs { if let routes = AVAudioSession.sharedInstance().availableInputs {
for route in routes { for route in routes {
if route.portType == .builtInMic { if route.portType == .builtInMic {
if case .record = type, self.isHeadsetPluggedInValue { if case .record = updatedType, self.isHeadsetPluggedInValue {
} else { } else {
let _ = try? AVAudioSession.sharedInstance().setPreferredInput(route) let _ = try? AVAudioSession.sharedInstance().setPreferredInput(route)
} }