About AVAudioRecorder Stop issue

基于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)
        }
    }

然后问题搞定,不再报错。

你可能感兴趣的:(About AVAudioRecorder Stop issue)