在我的应用程序中,我将使用麦克风进行一些录制.从iOS7.0开始,要求用户在开始音频之前检查访问麦克风的权限.
我的应用中有一个“开始录制”按钮.这里首先检查用户的录制许可.
这是执行此操作的代码:
if([[AVAudioSession sharedInstance] respondsToSelector:@selector(requestRecordPermission:)]) { [[AVAudioSession sharedInstance] performSelector:@selector(requestRecordPermission:) withObject:permissionBlock]; } #ifndef __IPHONE_7_0 typedef void (^PermissionBlock)(BOOL granted); #endif PermissionBlock permissionBlock = ^(BOOL granted) { NSLog(@"permissionBlock"); if (granted) { [self doActualRecording]; } else { // Warn no access to microphone } };
现在,我想让用户在用户启动应用程序时授权使用麦克风.然后,当用户选择“录制”按钮时,它会再次发出弹出消息.
Location服务也会发生类似的功能.我怎样才能进行麦克风访问?
解决方法
用户拒绝为您的应用程序启用麦克风访问权限后,您无法再次使用权限对话框显示它们.使用保存的设置.相反,您可以提示用户进入他们的设置并进行更改.
[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { if (granted) { NSLog(@"granted"); } else { NSLog(@"denied"); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Microphone Access Denied" message:@"You must allow microphone access in Settings > Privacy > Microphone" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; } }];
原文地址:https://www.jb51.cc/c/119681.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。