iOS录音
在iOS开发中,我们经常需要用到录音功能,比如录制语音备忘录、语音消息、语音识别等。iOS提供了AVFoundation框架来实现录音功能。本文将介绍如何在iOS应用中使用AVFoundation框架实现录音功能,并提供代码示例。
AVAudioRecorder
AVAudioRecorder是AVFoundation框架中用于录音的类。下面是使用AVAudioRecorder录音的基本步骤:
-
导入AVFoundation框架:
import AVFoundation
-
设置录音会话:
let session = AVAudioSession.sharedInstance() try? session.setCategory(.playAndRecord, mode: .default, options: []) try? session.setActive(true)
-
创建录音文件的URL:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] let audioFilename = documentsPath + "/recording.wav" let audioURL = URL(fileURLWithPath: audioFilename)
-
配置录音设置:
let settings: [String: Any] = [ AVFormatIDKey: kAudioFormatLinearPCM, AVSampleRateKey: 44100.0, AVNumberOfChannelsKey: 2, AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue ]
-
创建AVAudioRecorder实例:
let recorder = try? AVAudioRecorder(url: audioURL, settings: settings) recorder?.prepareToRecord()
-
开始录音:
recorder?.record()
-
停止录音:
recorder?.stop()
示例代码
下面是一个简单的示例代码,实现了录音和停止录音功能:
import AVFoundation
class Recorder {
var audioRecorder: AVAudioRecorder?
var isRecording: Bool = false
func startRecording() {
let session = AVAudioSession.sharedInstance()
try? session.setCategory(.playAndRecord, mode: .default, options: [])
try? session.setActive(true)
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let audioFilename = documentsPath + "/recording.wav"
let audioURL = URL(fileURLWithPath: audioFilename)
let settings: [String: Any] = [
AVFormatIDKey: kAudioFormatLinearPCM,
AVSampleRateKey: 44100.0,
AVNumberOfChannelsKey: 2,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]
audioRecorder = try? AVAudioRecorder(url: audioURL, settings: settings)
audioRecorder?.prepareToRecord()
audioRecorder?.record()
isRecording = true
}
func stopRecording() {
audioRecorder?.stop()
isRecording = false
audioRecorder = nil
}
}
你可以在你的iOS应用中使用以上代码来实现录音功能。通过调用startRecording()方法开始录音,调用stopRecording()方法停止录音。
总结
本文介绍了如何使用AVFoundation框架中的AVAudioRecorder类来实现录音功能。通过简单的几步,你可以在你的iOS应用中添加录音功能。希望本文对你有所帮助!