音频套件可以';在recorder demo中的AppDelegate中写入AVAudioSession.sharedInstance().setActive(true)时,无法录制

音频套件可以';在recorder demo中的AppDelegate中写入AVAudioSession.sharedInstance().setActive(true)时,无法录制,ios,swift,audiokit,Ios,Swift,Audiokit,然后它无法录制,当我删除这些代码时,它工作了您需要为会话设置正确的类别(您当前正在使用回放),并按正确的顺序执行这些代码。使用AvaudioSessionCategoryPlay和Record或AVAudioSessionCategoryRecord,然后调用SetActive。下面是捕获错误的代码 func applicationDidBecomeActive(_ application: UIApplication) { debugPrint("applicationDidBecom

然后它无法录制,当我删除这些代码时,它工作了

您需要为会话设置正确的类别(您当前正在使用回放),并按正确的顺序执行这些代码。使用
AvaudioSessionCategoryPlay和Record
AVAudioSessionCategoryRecord
,然后调用SetActive。下面是捕获错误的代码

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

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

为会话设置适当的类别以便录制。例如,
AvaudioSessionCategoryPlay和Record
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)
        }