更新记录
1.0.0(2026-04-21)
- 实时录音
- 持续回调 Base64 编码后的音频数据分片
- 录音时同步写入本地文件
- 回调音频规格固定为
16kHz / 单声道 / 16-bit
平台兼容性
uni-app(4.84)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | × | × | - | - | 5.0 | 1.0.0 | 12 | 1.0.0 | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.84)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|---|
| × | × | 5.0 | 1.0.0 | 12 | 1.0.0 | - | × |
mm-recorder
简介
mm-recorder 是一个 UTS 录音插件,当前源码实际提供的是“开始实时录音并持续回调 Base64 音频分片”这一套能力。
功能特性
- 实时录音
- 持续回调 Base64 编码后的音频数据分片
- 录音时同步写入本地文件
- 回调音频规格固定为
16kHz / 单声道 / 16-bit
导出 API
startRecordWithPCM(onPCM: (base64: string) => void): void
开始录音,并持续通过 onPCM 回调返回 Base64 字符串。
base64对应的是单次采集到的音频分片,不是整段录音文件- 回调会持续触发,直到调用
stopRecordWithPCM() - 录音中重复调用该方法会被忽略
stopRecordWithPCM(): void
停止录音并释放资源。
- 未开始录音时调用会被忽略
- 当前没有单独的“停止完成”回调
getPCMFilePath(): string
返回当前平台默认的录音文件路径。
注意:
- 方法名虽然叫
getPCMFilePath - 但 iOS 实际返回的是
.caf文件路径
使用示例
import {
startRecordWithPCM,
stopRecordWithPCM,
getPCMFilePath
} from '@/uni_modules/mm-recorder'
let recording = false
export default {
methods: {
startRecord() {
if (recording) return
recording = true
startRecordWithPCM((base64) => {
console.log('收到音频分片:', base64)
// 这里可以把 base64 分片发给语音识别服务
// 也可以先转回二进制后自行处理
})
},
stopRecord() {
if (!recording) return
recording = false
stopRecordWithPCM()
console.log('录音文件路径:', getPCMFilePath())
}
}
}
平台差异
| 平台 | 实时回调数据 | 本地文件 | 默认文件路径 |
|---|---|---|---|
| Android | 原始 PCM 分片,16kHz / 单声道 / 16-bit |
.pcm |
应用缓存目录下的 temp_recording.pcm |
| iOS | 回调数据会转换为 16kHz / 单声道 / 16-bit PCM |
.caf |
应用数据目录下的 temp_recording.caf |
| Harmony | 原始 PCM 分片,16kHz / 单声道 / 16-bit |
.pcm |
cacheDir/temp_recording.pcm |
补充说明:
- Android、Harmony 本地文件是原始 PCM 文件
- iOS 本地文件是
caf容器,录音参数同样按线性 PCM 配置 - 不同平台单次回调的数据块大小和回调频率可能不同
权限说明
Android
插件内部只检查录音权限,不主动拉起权限申请。
调用 startRecordWithPCM 前,请先确保宿主应用已经拿到:
android.permission.RECORD_AUDIO
如果权限未授予,当前实现不会抛出 JS 错误,只会启动失败且没有音频回调。
iOS
首次录音会触发系统麦克风权限申请。
插件已在 iOS 配置中声明:
NSMicrophoneUsageDescription
Harmony
首次录音会检查并申请:
ohos.permission.MICROPHONE
注意事项
- 鸿蒙没有真机实测,相当于免费赠送,如果有bug,联系作者免费修复
- 当前插件没有暂停、恢复、销毁、状态查询这类接口
onPCM只用于接收录音分片,不会在停止时额外回调一个结束标记- 回调里的 Base64 数据是音频分片内容,不带 WAV 头
- 如果要把数据发给语音识别或服务端,请明确告知服务端音频格式是:
sampleRate: 16000channels: 1bitDepth: 16
- 如果调用后一直没有收到回调,请优先检查:
- 麦克风权限是否已授予
- 真机是否有可用输入设备
- 平台原生日志中是否有启动失败信息

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 38
赞赏 0
下载 11616755
赞赏 1906
赞赏
京公网安备:11010802035340号