随着iOS 7的推出,应用程序在录制音频时必须请求麦克风访问.

如何判断应用程序是否可以访问麦克风

信息:

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {
    // Do something
}

推荐答案

iOS7中,无法获得microphone authorization的当前状态.他们把iOS8年的人口数定为AVAudioSessionRecordPermission

iOS7种情况下,你每次都必须申请许可

[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
        if (granted) {
            NSLog(@"Permission granted");
        }
        else {
            NSLog(@"Permission denied");
        }
    }];

以前也有人问过同样的问题,但没有像iOS8中那样了解当前状态的api

你可以参考Check for mic permission on iOS 7 without showing prompt

Solution:

另一个选项是,您可以显示popup或请求权限first time,并保存在NSUserDefaults中 Select 的用户选项的状态,然后不请求权限.

录制音频需要用户的明确许可.第一个

Swift相关问答推荐

向文本元素添加背景色失败

按变换zoom 在UIView中不起作用

从后台线程获取@发布属性的值(不更改它)是正确的吗?

NavigationLink和ObservableObject的动画片段

在数组中查找最大y值的x值

如何将多个完成处理程序转换为异步?

是否可以限制 ExpressibleByIntegerLiteral struct 的初始值?

Swift Random Float Fatal Error:在无限范围内没有均匀分布

如何测试可选 struct 的协议一致性

使用列表的下一项更新相同的视图

为什么 switch 在 optional 中不接受 case nil?

为什么 Swift Tuples 只能在元素个数小于等于 6 的情况下进行比较?

AES 加密和解密

swift 如何从 Int 转换?到字符串

Swift 4 Decodable - 以枚举为键的字典

Swift 协议只能设置?

如何使用 swift 将 Images.xcassets 中的图像加载到 UIImage 中

SwiftUI - 呈现工作表后导航栏按钮不可点击

Facebook SDK 4.0 IOS Swift 以编程方式注销用户

滑动侧边栏菜单 IOS 8 Swift