录制音频
将麦克风输入录制到文件。
录制音频 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
使用 AVAudioRecorder 录音
AVAudioRecorder 可以通过极少的配置将麦克风音频采集到文件中,非常适合语音备忘录和简单录音机。
import AVFoundation麦克风权限
录音需要用户授权。请将 NSMicrophoneUsageDescription 添加到 Info.plist,并在录音前请求访问权限。
AVAudioApplication.requestRecordPermission { granted in
if granted { /* start recording */ }
}配置音频会话
将会话类别设置为 .record 或 .playAndRecord,并将其激活,使系统将麦克风输入路由到您的应用。
let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord)
try session.setActive(true)选择文件 URL
录音会写入文件。请在文稿目录中构建一个 URL,并使用合适的扩展名,例如 .m4a。
let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let url = dir.appendingPathComponent("memo.m4a")录音机设置
设置通过包含 AVAudioRecorder 键的字典定义格式、采样率、声道数和质量。
let settings: [String: Any] = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 44100,
AVNumberOfChannelsKey: 1,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]创建录音机
使用 URL 和设置初始化 AVAudioRecorder,然后调用 prepareToRecord() 分配资源。
let recorder = try AVAudioRecorder(url: url, settings: settings)
recorder.prepareToRecord()开始与停止
调用 record() 开始录音,调用 stop() 完成录音。停止操作会完成写入并关闭音频文件。
recorder.record()
// later
recorder.stop()定时录音与暂停录音
您可以使用 record(forDuration:) 按固定时长录音,也可以通过 pause() / record() 恢复录音并继续写入同一个文件。
recorder.record(forDuration: 30) // stop after 30s电平计量
启用 isMeteringEnabled,然后调用 updateMeters() 并读取 averagePower(forChannel:),即可驱动实时电平表。
recorder.isMeteringEnabled = true
recorder.updateMeters()
let power = recorder.averagePower(forChannel: 0) // in dB代理
遵循 AVAudioRecorderDelegate,即可得知录音是否成功完成,或是否发生编码错误。
func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder,
successfully flag: Bool) {
print("finished: \(flag)")
}播放录音结果
录音完成后,使用指向同一 URL 的 AVAudioPlayer 播放文件,这是快速验证采集结果的方法。
let player = try AVAudioPlayer(contentsOf: url)
player.play()快速检查:录音
请检验您对音频录制的理解。
回顾:录制音频
请求权限并激活用于录音的 AVAudioSession 后,AVAudioRecorder 会将麦克风音频采集到文件中。请提供 URL 和设置字典(格式、采样率、声道数、质量),调用 prepareToRecord(),然后调用 record()/stop()。
启用电平计量以显示实时电平,使用代理处理完成事件,并通过 AVAudioPlayer 播放录音进行验证。
常见问题解答
「录制音频」课时是免费的吗?
是的 — 「录制音频」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「录制音频」这节课中我会学到什么?
将麦克风输入录制到文件。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「录制音频」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。