应用程序崩溃请求允许使用iPhone的麦克风与iOS 11
问题描述:
我的应用程序崩溃时当我尝试请求允许使用iPhone的麦克风用下面的代码:应用程序崩溃请求允许使用iPhone的麦克风与iOS 11
var permissionGranted = false
switch AVAudioSession.sharedInstance().recordPermission() {
case AVAudioSessionRecordPermission.granted:
setupRecorder()
permissionGranted = true
case AVAudioSessionRecordPermission.denied:
permissionGranted = false
case AVAudioSessionRecordPermission.undetermined:
AVAudioSession.sharedInstance().requestRecordPermission {
[weak self] granted in
if granted {
self?.setupRecorder()
}
}
default:
permissionGranted = false
break
}
我还添加NSMicrophoneUsageDescription
到应用程序的信息。 plist用绳子。当我运行该应用程序时,它崩溃了,Xcode打印出一条错误消息,说我需要向plist添加NSMicrophoneUsageDescription
。
答
试试以下功能
struct Manager {
static var recordingSession: AVAudioSession!
static var micAuthorised = Bool()
}
func CheckForPermission()
{
Manager.recordingSession = AVAudioSession.sharedInstance()
do
{
try Manager.recordingSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: .defaultToSpeaker)
// try Manager.recordingSession.setPreferredSampleRate(16000)
// try Manager.recordingSession.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
// try Manager.recordingSession.setActive(true)
Manager.recordingSession.requestRecordPermission({ (allowed) in
if allowed
{
Manager.micAuthorised = true
print("Mic Authorised")
}
else
{
Manager.micAuthorised = false
print("Mic not Authorised")
}
})
}
catch
{
print("Failed to set Category", error.localizedDescription)
}
}
你得到什么错误讯息? –
更新您的问题,显示Info.plist的相关部分,验证您是否拥有正确的权限条目。 – rmaddy
您确定您的项目的构建设置正在查找您的info.plist正确的路径吗? – MEnnabah