使用鸿蒙音频录制与播放 API 构建语音备忘录 App HarmonyOS 5.0.0或以上_鸿蒙os备忘录
有时候,打字太麻烦。
用语音记录想法、会议纪要、备忘事项,简单高效。
本篇将用鸿蒙 ArkTS 原生 API,手把手教你构建一款语音备忘录应用:
✅ 录音一键开始/结束
✅ 自动保存为本地音频文件
✅ 支持播放/暂停/删除音频
✅ 文件列表展示+命名规范
✅ 技术模块一览
@ohos.multimedia.media
@ohos.multimedia.media
@ohos.file.fs
Date
, format()
或 uuid
📦 Step1:封装音频录制逻辑
import media from \'@ohos.multimedia.media\'import fs from \'@ohos.file.fs\'let recorder: media.AVRecorderasync function startRecording(filename: string): Promise { const path = `/data/user/record/${filename}.aac` recorder = await media.createAVRecorder() await recorder.prepare({ audioEncodeBitRate: 96000, audioSampleRate: 44100, audioChannels: 2, audioCodecMime: media.CodecMimeType.AAC, fileFormat: media.AVRecorderOutputFormat.AAC_ADTS, uri: path }) await recorder.start() return path}async function stopRecording(): Promise { await recorder.stop() await recorder.release()}
📦 Step2:封装音频播放功能
let player: media.AVPlayerasync function playAudio(filePath: string) { player = await media.createAVPlayer() await player.setSource({ uri: filePath, mediaType: media.MediaType.AUDIO }) await player.prepare() await player.play()}async function pauseAudio() { await player.pause()}
📦 Step3:构建 UI:录音控制 + 文件列表
@Entry@Componentstruct VoiceMemoApp { @State isRecording: boolean = false @State records: string[] = [] async toggleRecording() { if (!this.isRecording) { const name = `memo_${Date.now()}` const path = await startRecording(name) this.records.push(path) } else { await stopRecording() } this.isRecording = !this.isRecording } async deleteAudio(path: string) { await fs.unlink(path) this.records = this.records.filter(p => p !== path) } build() { Column({ space: 20 }) { Button(this.isRecording ? \'停止录音\' : \'开始录音\') .onClick(() => this.toggleRecording()) List() { ForEach(this.records, path => ( ListItem() { Row({ space: 10 }) { Text(path.split(\'/\').pop() ?? \'\') Button(\'播放\').onClick(() => playAudio(path)) Button(\'删除\').onClick(() => this.deleteAudio(path)) } } )) } } .padding(20) }}
📦 Step4:录音文件本地管理建议
-
建议保存至
/data/user/record/
或用户选择路径; -
使用统一前缀 + 时间戳命名(如
memo_202505131115.aac
); -
可添加备注字段、JSON 存储元数据;
-
支持语音转文字(后续可集成 AI 模型);
✅ 拓展功能建议
🎯 应用场景
🧩 小结
通过本篇你已掌握:
-
如何使用 ArkTS 原生 API 实现音频录制;
-
音频播放/暂停功能封装与调用;
-
文件保存、命名、删除等文件管理;
-
构建语音备忘录完整功能闭环。
这是鸿蒙在“音频处理 + 原生交互 + 本地持久化”能力上的一次全面实战。
📘 下一篇预告
《系统分享能力集成:调用鸿蒙原生“分享弹窗”一键转发文本/图片/文件》
我们将接入鸿蒙原生分享接口,让你的 App 一键分享录音、笔记、图片至微信、QQ、邮件等外部应用。