Я пытаюсь записать звук с помощью микрофона и AVAudioRecorder
.Настройки AVAudioRecorder пуст после вызова конструктора
Он работает на прошивке 8 но мой код не работает больше на IOS 9.
Словарь recordSettings
установлен правильно, тогда я передаю его конструктору AVAudioRecorder:URL:settings
.
Но, только после того, как, recorder.settings
пуст, сбой утверждение отбрасывается
let recordSettings: [String: AnyObject] = [
AVNumberOfChannelsKey: NSNumber(integer: 2),
AVFormatIDKey: NSNumber(integer: Int(kAudioFormatMPEG4AAC)),
AVEncoderBitRateKey: NSNumber(integer: 64)]
var recorder: AVAudioRecorder!
do {
recorder = try AVAudioRecorder(URL: tempURL, settings:recordSettings) // recordSettings.count = 3
assert(recorder.settings.count != 0, "Audio Recorder does not provide settings") // assertion failure threw
} catch let error as NSError {
print("error when intitializing recorder: \(error)")
return
}
Любой человек может мне помочь? Это ошибка?
EDIT: В моем целом кодексе я не тестировал recorder.settings
сразу после. Я экземпляр рекордера, как мой код выше, то я сделал это:
recorder.delegate = self
recorder.prepareToRecord()
recorder.meteringEnabled = true
И он выходит из строя в этой строке:
for i in 1...(recorder.settings[AVNumberOfChannelsKey] as! Int) {
...
}
Он падает, потому что recorder.settings[AVNumberOfChannelsKey]
является nil
Упс! Я отредактировал мой пост, я протестировал с утверждением только для публикации, весь мой код отличается. Спасибо, я тестирую ваше решение прямо сейчас! – thedjnivek
Спасибо, я обновил битрейт до 64000 бит – thedjnivek