下午好
我在Xcode 11.3中使用了最新版本的AudioKit(4.9 Master Branch),并且遇到了一个奇怪的权限问题。用户首次启动应用程序时,操作系统会请求使用麦克风的权限。用户选择“允许”后,麦克风将无法工作,但是如果您强制退出应用程序并重新启动,则麦克风可以正常工作。
我创建了一个用于测试权限状态的函数,并将其放置在viewDidLoad()中:
func checkMic() {
switch AVAudioSession.sharedInstance().recordPermission {
case AVAudioSessionRecordPermission.granted:
print("Permission granted")
case AVAudioSessionRecordPermission.denied:
print("Pemission denied")
case AVAudioSessionRecordPermission.undetermined:
print("Request permission here")
AVAudioSession.sharedInstance().requestRecordPermission({ (granted) in
print("Mic Enabled")
})
@unknown default:
print("Not Working")
}
}
该函数仅在第一次运行时触发,但是到此为止,我已经初始化了我的AudioKit单例类。我试图重新初始化没有成功。我以前从未遇到过,并且想知道是否有人正在经历此更改或对此有建议。
答案 0 :(得分:1)
当iOS要求许可使用麦克风时,似乎AKAnalizer和AKMicrophone都被禁用了。我需要重新开始。希望这可以帮助处于相同情况的任何人。
var audioCore = AudioCore.sharedInstance()
func checkMic() {
switch AVAudioSession.sharedInstance().recordPermission {
case AVAudioSessionRecordPermission.granted:
print("Permission granted")
case AVAudioSessionRecordPermission.denied:
print("Pemission denied")
case AVAudioSessionRecordPermission.undetermined:
print("Request permission here")
AVAudioSession.sharedInstance().requestRecordPermission({ (granted) in
print("Mic Enabled")
self.audioCore.microphone.start()
self.audioCore.analyzer.start()
print(self.audioCore.microphone.isStarted)
print(self.audioCore.analyzer.isStarted)
})
@unknown default:
print("Not Working")
}