AVAudioSession setCategory .allowBluetooth вызывает сбой - PullRequest
0 голосов
/ 09 марта 2020

Я пишу приложение, которое записывает аудио пользователя с помощью AVAudioSession. Все работает хорошо, когда я не добавляю bluetooth к опциям, но я хотел бы также иметь возможность записи с AirPods. Когда я добавляю опцию .allowBluetooth, она производит cra sh и больше не работает.

        do {
            let session = AVAudioSession.sharedInstance()
            try session.setCategory(.record, mode: .default, options: [.defaultToSpeaker, .allowBluetooth])
            try session.setActive(true)
        } catch let error as NSError {
            print(error.localizedDescription)
            return
        }

Есть предложения по этому поводу? Я просмотрел многочисленные сообщения SO, связанные с этой темой, и не нашел ничего, что могло бы решить мою проблему.

1 Ответ

0 голосов
/ 09 марта 2020

Вы получаете код ошибки -50, который указывает на недопустимые параметры.

Это потому, что опция .defaultToSpeaker может использоваться только с категорией playAndRecord:

Вы можете установить эту опцию только при использовании playAndRecord категория. Он используется для изменения режима маршрутизации категории, так что звук всегда направляется на динамик, а не на ресивер, если не используются никакие другие аксессуары, такие как наушники.

Поэтому удалите эту опцию или используйте playAndRecord категория.

...