首页 > 解决方案 > 当我在录音机演示中的 AppDelegate 中编写 AVAudioSession.sharedInstance().setActive(true) 时,AudioKit 无法录音

问题描述

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

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

然后它无法记录,当我删除这些代码时,它起作用了

标签: iosswiftaudiokit

解决方案


您需要为会话设置正确的类别(您当前正在使用播放)并以正确的顺序执行这些。使用AVAudioSessionCategoryPlayAndRecordor之后AVAudioSessionCategoryRecord调用 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)
        }

推荐阅读