有iOS端的这种录音代码吗?
时间: 2024-03-09 18:45:23 浏览: 22
以下是一个基于 AVFoundation 框架的 iOS 录音代码示例:
```swift
import UIKit
import AVFoundation
class ViewController: UIViewController, AVAudioRecorderDelegate {
var audioRecorder: AVAudioRecorder!
override func viewDidLoad() {
super.viewDidLoad()
// 初始化录音器
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(.playAndRecord, mode: .default)
try audioSession.setActive(true)
let settings = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 44100,
AVNumberOfChannelsKey: 2,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]
audioRecorder = try AVAudioRecorder(url: getDocumentsDirectory().appendingPathComponent("recording.m4a"), settings: settings)
audioRecorder.delegate = self
audioRecorder.prepareToRecord()
} catch {
print("初始化录音器失败:\(error)")
}
}
func startRecording() {
audioRecorder.record()
}
func stopRecording() {
audioRecorder.stop()
}
func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, successfully flag: Bool) {
if flag {
print("录音成功")
} else {
print("录音失败")
}
}
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let documentsDirectory = paths[0]
return documentsDirectory
}
}
```
这个示例定义了一个 `AVAudioRecorder` 的实例 `audioRecorder`,用于录制音频。在 `viewDidLoad` 方法中初始化录音器,设置录音的相关参数,包括音频格式、采样率、声道数和音频质量。在 `startRecording` 方法中开始录音,在 `stopRecording` 方法中停止录音。同时,也实现了 `AVAudioRecorderDelegate` 协议中的 `audioRecorderDidFinishRecording` 方法,用于在录音完成后输出录音结果。注意,在使用录音器前需要先获取麦克风的访问权限。