【发布时间】:2015-10-14 16:17:17
【问题描述】:
我正在尝试使用麦克风和AVAudioRecorder 录制音频。
它适用于 iOS 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
}
有人可以帮助我吗?是bug吗?
编辑:在我的整个代码中,我没有在之后测试recorder.settings。我确实像上面的代码一样实例化了记录器,然后我就这样做了:
recorder.delegate = self
recorder.prepareToRecord()
recorder.meteringEnabled = true
它在这一行崩溃了:
for i in 1...(recorder.settings[AVNumberOfChannelsKey] as! Int) {
...
}
它崩溃是因为recorder.settings[AVNumberOfChannelsKey] 是nil
【问题讨论】:
标签: ios swift avaudiorecorder avaudiosession