AVCaptureDevice.requestAccess(for:.audio)不会提示用户,并且返回true。有可能吗?

问题描述 投票:0回答:1

我需要提示用户音频许可,以便在我的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
}
swift audio permissions webrtc avcapturedevice
1个回答
0
投票

official documentation的最后一行所述,此old answer,AVCaptureDevice.requestAccess(for:.audio)或AVAudioSession.sharedInstance()。requestRecordPermission确实在模拟器上起作用,并且始终返回true “已授予”。

使用音频调用此方法等效于调用AVAudioSession方法requestRecordPermission(_:)。

问题已解决。

© www.soinside.com 2019 - 2024. All rights reserved.