> 技术文档 > 使用鸿蒙音频录制与播放 API 构建语音备忘录 App HarmonyOS 5.0.0或以上_鸿蒙os备忘录

使用鸿蒙音频录制与播放 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 模型);


✅ 拓展功能建议

功能 实现方式 语音转文字(ASR) 接入语音识别引擎,如鸿蒙 AI 能力模块 录音标签与搜索 本地 JSON 存储音频文件 + 标签字段 多格式导出 支持 WAV / MP3 格式或音频合成导出 分享录音文件 使用鸿蒙系统分享接口,发送至微信、邮箱等

🎯 应用场景

场景 描述 教师课堂录音 标题:语文第3课回顾 面试记录 标题:2025-05-面试反馈录音 家人/老人的语音备忘 一键点录,清晰易用 创意记录 灵感一来就说,不怕忘

🧩 小结

通过本篇你已掌握:

  • 如何使用 ArkTS 原生 API 实现音频录制;

  • 音频播放/暂停功能封装与调用;

  • 文件保存、命名、删除等文件管理;

  • 构建语音备忘录完整功能闭环。

这是鸿蒙在“音频处理 + 原生交互 + 本地持久化”能力上的一次全面实战。


📘 下一篇预告

《系统分享能力集成:调用鸿蒙原生“分享弹窗”一键转发文本/图片/文件》

我们将接入鸿蒙原生分享接口,让你的 App 一键分享录音、笔记、图片至微信、QQ、邮件等外部应用。