ios - 当我在录音机演示中的 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()//设置后台播放
}
然后它无法记录,当我删除这些代码时,它起作用了
解决方案
您需要为会话设置正确的类别(您当前正在使用播放)并以正确的顺序执行这些。使用AVAudioSessionCategoryPlayAndRecord
or之后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)
}
推荐阅读
- mysql - 如何从springboot连接聪明云的mysql?
- ruby-on-rails - 在 Rails 中生成 url 时替换 example.org
- javascript - 如何使用 simple-git (NODEJS) 提交和推送?
- javascript - Angular 订阅无法按我的预期工作
- php - 使用 Composer 安装包
- node.js - 测试快速 HTTPS 服务器时的“app.address 不是函数”
- django-rest-framework - 如何在 django restframework 中获取项目名称而不是项目 ID(外键案例)
- dart - 使用带有 add() 方法的 dart 将元素添加到 2d 列表
- flutter - Flutter:我可以使用 Provider.of
在普通类组件中? - kotlin - 如何在 Kotlin 中制作集合的深拷贝?