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

标签 swift audio permissions webrtc avcapturedevice

我需要提示用户音频许可,以便在我的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会在模拟器上执行 NOT 的工作,并且始终返回真实的“授权”。

Invoking this method with audio is equivalent to calling the AVAudioSession method requestRecordPermission(_:).


问题解决了。

关于swift - AVCaptureDevice.requestAccess(for:.audio)不会提示用户,并且返回true。可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61149684/

相关文章:

ios - UIViewController 无法快速导航到另一个页面

linux - 以非 root 用户身份访问带有 libusb-1.0 的 USB 设备

linux - 为什么我不能 `mv` 没有额外写入权限的目录

ios - Swift:出现神秘约束

ios - Swift:如何将结构转换为字典以及键的层次结构

python - 在模板中播放音频。 Django

objective-c - 具有图像文件和声音文件的CCSprite

iphone - 在IOS核心音频中,如何找到文件播放器音频单元的真实当前播放头位置?

file - 什么是正常的chmod?

ios - 在没有插入闪电电缆的情况下,如何在真实的 iOS 设备上查看实时控制台日志?