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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容