2017-10-14 19 views
0

マイアプリのクラッシュで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はplakeにNSMicrophoneUsageDescriptionを追加する必要があるというエラーメッセージを表示します。

+1

を使用してみてください? –

+0

あなたのInfo.plistの関連部分を示す質問を更新して、あなたが正しい権限を持っていることを確認してください。 – rmaddy

+0

プロジェクトのビルド設定でinfo.plistの正しいパスが見つかっていますか? – MEnnabah

答えて

0

は、あなたがどのようなエラーメッセージが出ない機能

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) 
     } 
    } 
関連する問題