当我在录音机演示中的 AppDelegate 中写入 AVAudioSession.sharedInstance().setActive(true) 时,AudioKit 无法录音

AudioKit can't record when I write AVAudioSession.sharedInstance().setActive(true) in AppDelegate in the recorder demo

func applicationDidBecomeActive(_ application: UIApplication) {
    debugPrint("applicationDidBecomeActive")
    do{
        try AVAudioSession.sharedInstance().setActive(true)
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
    }catch{

    }
    UIApplication.shared.endReceivingRemoteControlEvents()//设置后台播放
}

然后就录不了了,我把这些代码删了就可以了

您需要为会话设置正确的类别(您当前正在使用播放)并以正确的顺序执行这些。使用 AVAudioSessionCategoryPlayAndRecordAVAudioSessionCategoryRecord 并在 之后 调用 SetActive。这是错误捕获的代码。

do {
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord)
         do {
                try AVAudioSession.sharedInstance().setActive(true)
            } catch let error as NSError {
                print (error)
            }
        } catch let error as NSError {
            print (error)
        }