我試圖使用麥克風和AVAudioRecorder
錄製音頻。構造函數調用後AVAudioRecorder設置爲空
它適用於iOS的,但我的代碼不會對工作了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
}
任何人都可以幫我嗎?這是一個錯誤嗎?
編輯:在我的整個代碼中,我沒有測試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