AVCaptureDevice.requestAccess (for: .audio) НЕ запрашивает пользователя и возвращает true. Является ли это возможным? - PullRequest
0 голосов
/ 11 апреля 2020

Мне нужно запросить у пользователя разрешения на аудио для дальнейшего использования WebRT C в моем проекте iOS. Я добавил NSMicrophoneUsageDescription в info.plist и пытаюсь выполнить следующий код, но он не работает, даже если AVCaptureDevice.authorizationStatus (для: .audio) имеет значение .notDetermined.

AVCaptureDevice.requestAccess (для: .audio) НЕ запрашивает пользователю и вдруг возвращает истину.

XCode 11.1, Swift 5, iPhone 8 Plus 11.0.1 Simulator

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
}

1 Ответ

0 голосов
/ 11 апреля 2020

Как уже упоминалось в последней строке официальной документации , и старый ответ , AVCaptureDevice.requestAccess (для: .audio) или AVAudioSession.sharedInstance (). RequestRecordPermission делает NOT работает на симуляторе и всегда возвращает true, иначе "предоставлено".

Вызов этого метода со звуком эквивалентен вызову метода AVAudioSession requestRecordPermission (_:).

Проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...