我需要提示用户音频许可,以便在我的iOS项目中进一步使用WebRTC。我已将NSMicrophoneUsageDescription添加到info.plist并尝试遵循以下代码,但即使AVCaptureDevice.authorizationStatus(for:.audio)为.notDetermined,也无法正常工作。
AVCaptureDevice.requestAccess(for:.audio)不会提示用户,并突然返回true。
XCode 11.1,Swift 5,iPhone 8 Plus 11.0.1模拟器
switch AVCaptureDevice.authorizationStatus(for: .audio) {
case .authorized:
self.doSmt()
case .notDetermined:
AVCaptureDevice.requestAccess(for: .audio) { granted in
if granted {
self.doSmt() // Works immediately without promting user.
}
}
case .denied:
return
case .restricted:
return
}
如official documentation的最后一行所述,此old answer,AVCaptureDevice.requestAccess(for:.audio)或AVAudioSession.sharedInstance()。requestRecordPermission确实在模拟器上起作用,并且始终返回true “已授予”。使用音频调用此方法等效于调用AVAudioSession方法requestRecordPermission(_:)。
问题已解决。