Я пытался сделать это, но безуспешно.
Самое близкое решение, которое я решил, это определить, подключены ли наушники, используя следующее:
extension AVAudioSession {
static var connectedHeadphones: AVAudioSessionPortDescription? {
return sharedInstance().currentRoute.outputs.first(where: { $0.isHeadphones })
}
}
extension AVAudioSessionPortDescription {
var isHeadphones: Bool {
return portType == AVAudioSession.Port.headphones || portType == AVAudioSession.Port.bluetoothA2DP
}
}
и затем установите его в AVAudioSession:
try session.setPreferredInput(connectedHeadphones)