Громкоговоритель недоступен, если подключены аэродромы - PullRequest
1 голос
/ 22 марта 2019

Я пытаюсь переопределить звук приложения в динамик, когда пользователь нажимает кнопку, но динамик не отображается в качестве доступного аудиовыхода при подключении аэродромов.Что я могу сделать, чтобы звук шел в динамик?Этот код работает, когда подключено любое другое устройство Bluetooth.

po AVAudioSession.sharedInstance (). AvailableInputs

AVAudioSessionPortDescription: 0x283dc3410, тип = MicrophoneBuiltIn;имя = iPhone Микрофон;UID = встроенный микрофон;selectedDataSource = (null)> VAudioSessionPortDescription: 0x283dc32b0, тип = BluetoothHFP;name = AirPods Линдси;UID = 94: B0: 1F: C3: FF: 6B-tsco;selectedDataSource = (null)>

var err: Error? = nil
let session = AVAudioSession.sharedInstance()
do {
    try session.setCategory(AVAudioSession.Category.playAndRecord, mode: .voiceChat, options: [.allowBluetooth, .allowBluetoothA2DP, .mixWithOthers])

} catch {
    NSLog("Unable to change audio category because : \(String(describing: err?.localizedDescription))")
    err = nil
}

do {
    try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSession.PortOverride.speaker)
} catch let error as NSError {
    print("audioSession error turning on speaker: \(error.localizedDescription)")
}
...