Я использую AVAudioSession
и AVAudioInputNode
для записи голоса в iOS.
Для инициализации я использовал следующие настройки, которые работали нормально:
[AVFormatIDKey: kAudioFormatLinearPCM, AVLinearPCMBitDepthKey: 16, AVLinearPCMIsFloatKey: true, AVSampleRateKey: Float64(8000), AVNumberOfChannelsKey: 1] as [String : Any]
Сейчасв моем новом iPhone 11 Pro с этим кодом я получаю сбой с этой ошибкой: required condition is false: format.sampleRate == hwFormat.sampleRate
Чтобы избежать этого, нужно установить частоту дискретизации с AVSession
:
[AVFormatIDKey: kAudioFormatLinearPCM, AVLinearPCMBitDepthKey: 16, AVLinearPCMIsFloatKey: true, AVSampleRateKey: AVAudioSession.sharedInstance().sampleRate, AVNumberOfChannelsKey: 1] as [String : Any]
Этот код работает на моем iPhone 11 Pro, но теперь он падает на других устройствах.
Есть идеи, как это исправить для всех? Почему это происходит? Что изменилось?
Спасибо!