使用 AVCaptureSession 提示用户提供麦克风权限

Posted

技术标签:

【中文标题】使用 AVCaptureSession 提示用户提供麦克风权限【英文标题】:Prompt user for microphone permissions using AVCaptureSession 【发布时间】:2014-03-09 14:17:23 【问题描述】:

如果我的应用没有麦克风权限,我需要提示用户授予麦克风权限。它是一个使用 AVCaptureSession 录制视频的视图控制器。我找到了如何使用 AvAudiosession:

How to detect microphone input permission refused in iOS 7

但是是否可以对 AvCaptureSession 执行相同的操作来录制视频?

    检测用户是否已授予麦克风权限 如果没有,请再次请求权限

谢谢

【问题讨论】:

微权限 == 麦克风权限,对吧? 是的,我已经编辑了我的答案。 【参考方案1】:

这是来自 Apple 的示例代码

switch AVCaptureDevice.authorizationStatus(for: .video) 
    case .authorized: // The user has previously granted access to the camera.
        self.setupCaptureSession()

    case .notDetermined: // The user has not yet been asked for camera access.
        AVCaptureDevice.requestAccess(for: .video)  granted in
            if granted 
                self.setupCaptureSession()
            
        

    case .denied: // The user has previously denied access.
        return

    case .restricted: // The user can't grant access due to restrictions.
        return

我建议您尝试将媒体类型更改为“.audio”,以便像这样使用麦克风:

AVCaptureDevice.authorizationStatus(for: AVMediaType.audio)

来源:https://developer.apple.com/documentation/avfoundation/...

【讨论】:

以上是关于使用 AVCaptureSession 提示用户提供麦克风权限的主要内容,如果未能解决你的问题,请参考以下文章

当音频输入添加到 AVCaptureSession 时 AVAudioPlayer 停止

使用 AVCaptureSession 录制视频

使用 AVAsset/AVCaptureSession 裁剪视频

CoreML 使用 AVCaptureSession 返回不同的值

使用 AVFoundation 框架(AVCaptureSession)在 iPhone 中录制视频?

只有背景音乐的 AVCaptureSession