📜  记录权限 swift 4 - Swift (1)

📅  最后修改于: 2023-12-03 14:57:38.192000             🧑  作者: Mango

记录权限 Swift 4

在iOS开发中,记录权限是一项很重要的功能。它允许您访问和记录设备上的各种活动。在本文中,我们将重点讨论如何在Swift 4中实现权限记录。

获取记录权限

要获取记录权限,您需要通过AVAudioSession API配置您的应用程序。为了获得访问权限,您需要在Info.plist文件中添加字典键值对。请记住,如果未在Info.plist文件中添加正确的键,应用程序将无法访问您想要记录的信息。

在代码中,可以使用以下代码获取权限:

let audioSession = AVAudioSession.sharedInstance()

do {
    try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: .defaultToSpeaker)
    try audioSession.setActive(true)
    audioSession.requestRecordPermission { (allowed) in
        if allowed {
            print("录制权限已获得")
        } else {
            print("未获得录制权限")
        }
    }
} catch {
    print("未能设置录制设置")
}

以上代码将同时设置音频会话的类别和状态,然后使用requestRecordPermission()方法来请求访问权限。在方法中,我们使用一个闭包传递已请求许可的结果。

记录音频

现在,我们已经获取了记录权限,可以开始记录音频了。我们将使用AVAudioRecorder类来执行此操作。

以下是在Swift 4中记录音频的代码片段:

var audioRecorder: AVAudioRecorder!
let fileName = "recordedAudio.wav"
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
let audioURL = URL(fileURLWithPath: documentsDirectory).appendingPathComponent(fileName)

let audioSession = AVAudioSession.sharedInstance()

do {
    try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: .defaultToSpeaker)
    try audioSession.setActive(true)

    audioRecorder = try AVAudioRecorder(url: audioURL, settings: [:])
    audioRecorder.record()

} catch {
    print("录制文件错误")
}

我们首先定义了AVAudioRecorder对象及其存储到设备上的URL。我们还设置音频会话以及创建一个AVAudioRecorder对象。注意,在上面的代码中,我们没有使用任何设置。这是因为我们默认将其设置为需要的格式。

最后,我们调用record()方法开始记录。

结论

在本文中,我们学习了如何在Swift 4中获取和记录记录权限。我们还了解了如何使用AVAudioRecorder类来记录音频。现在,您可以轻松地从应用程序中记录音频。