基于xCode8.2.1 Swift3.0 开发科大讯飞时,当录音没有完成时就取消,就会出现以下问题显示“AVAudioSession.mm:1074:-[AVAudioSession setActive:withOptions:error:]:” Deactivating an audio session that has running I/O. All I/O should be stopped or paused prior to deactivating the audio session."
这是我的停止录音方法,结果会报错
func stopRecoreder() {
recorder.stop()
let audioSessions = AVAudioSession.sharedInstance()
do {
try audioSessions.setActive(false)
print("stop!!")
} catch {
}
}
后来找到了方法
第一步,停止方法改成以下方法
func stopRecoreder() {
self.recorder.stop()
self.recorder.prepareToRecord()
}
第二步
实现AVAudioRecorder的delegate方法
func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, successfully flag: Bool) {
do {
try audioSession.setActive(false)
} catch {
print(error)
}
}
然后问题搞定,不再报错。