Сбой AVAudioEngine.connect на оборудовании, а не на симуляторе - PullRequest
3 голосов
/ 21 октября 2019
var engine:AVAudioEngine!
var format = engine.inputNode.inputFormat(forBus: 0)
engine.connect(engine.inputNode, to: engine.mainMixerNode, format: format)

в функции AVAudioEngine.connect вызывает сбой моего приложения только на оборудовании, но в симуляторе это нормально.

Когда я запускаю на оборудовании, появляется сообщение об ошибке.

Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: IsFormatSampleRateAndChannelCountValid(format)'
terminating with uncaught exception of type NSException

1 Ответ

1 голос
/ 26 октября 2019

Я понял это. Я просто неправильно установил тип категории AVAudioSession. Если у вас есть та же ошибка, посмотрите на AVAudioSession и убедитесь, что ваша категория AVAudioSession находится в правильной настройке для разрешения микрофона. например,

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, with: .mixWithOthers)

с этим параметром позволит приложению использовать микрофон и воспроизводить звук одновременно.

...