AudioKit麦克风在首次运行时不会初始化

时间:2019-12-12 16:51:23

标签: ios audiokit

下午好

我在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单例类。我试图重新初始化没有成功。我以前从未遇到过,并且想知道是否有人正在经历此更改或对此有建议。

1 个答案:

答案 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")
    }