一尘不染

AVAudioSession迅捷

swift

我正在尝试编写一个快速的iOS应用程序,它将记录用户的声音。我已经迅速编写了以下代码,但是无法从用户那里请求麦克风权限。它可以正常打印,但从不记录音频,并且在“隐私”下的“设置”窗格中未列出该应用程序。如何快速请求录制权限?

var session: AVAudioSession = AVAudioSession.sharedInstance()
session.requestRecordPermission({(granted: Bool)-> Void in
     if granted {
          println(" granted")
          session.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
          session.setActive(true, error: nil)
          self.recorder.record()
     }else{
          println("not granted")
     }
})

阅读 301

收藏
2020-07-07

共1个答案

一尘不染

从iOS 7开始,您需要检查它是否响应选择器 requestRecordPermission:

我已经使用带有 iOS 8 Beta*iPhone 5S 测试了此代码,它可以完美运行。授予权限后,系统将不再要求它。 *

值得一提的是,使用 Simulator 时并没有征求许可。

这是我尝试并正在工作的代码:

if (session.respondsToSelector("requestRecordPermission:")) {
    AVAudioSession.sharedInstance().requestRecordPermission({(granted: Bool)-> Void in
        if granted {
            println("granted")
            session.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
            session.setActive(true, error: nil)
            self.recorder ()
        } else{
            println("not granted")
        }
     })

}
2020-07-07