更新记录
1.0.0(2026-10-08)
- 首个版本发布
- 支持开始录音、暂停、续录、停止
- 返回 m4a 录音文件本地路径,可直接播放或上传
- 首次调用自动申请麦克风权限,权限被拒有明确回调
- Android / iOS 双端支持(一套 UTS 代码同时编译)
平台兼容性
uni-app(5.05)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | × | × | √ | × | √ | √ | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | - | × | × | - | - | - |
czq-record 录音插件(支持暂停 / 续录)
uni-app uts 原生插件,一套 UTS 代码同时编译 Android / iOS,支持开始录音、暂停、续录、停止,返回录音文件本地路径,可直接用于播放与上传。
适用于需要"暂停后再继续录"的场景,如语音备注、语音留言、语音上报、会议记录、音频录制上传等。
基本信息
| 项 | 值 |
|---|---|
| 插件 ID | czq-record |
| 插件类型 | uts 插件(Module 模式) |
| 支持平台 | Android 5.0+ / iOS 12.0+ |
| 音频格式 | m4a(AAC 编码,单声道,44100Hz) |
| 运行方式 | 需自定义基座运行与云打包 |
| 权限 | Android:RECORD_AUDIO;iOS:NSMicrophoneUsageDescription(插件已内置,无需手动配置) |
功能清单
- 开始录音,返回文件路径
- 暂停录音
- 续录(暂停后继续写入同一文件)
- 停止录音并释放资源,返回最终文件路径
- 首次调用自动申请麦克风权限,权限被拒有明确回调
安装
把 uni_modules/czq-record 整个目录拷贝到你的 uni-app 项目 uni_modules 下,重新制作自定义调试基座即可。
注意:uts 插件不支持标准基座运行,必须使用自定义基座。 同时请确认工程根目录的
package.json不要设置"type": "module",否则.uts文件会被按 ESM 规则解析而编译失败。
快速使用
// 引入插件(import 只能到插件根目录)
import { startRecord, pauseRecord, stopRecord } from '@/uni_modules/czq-record'
// 开始录音 / 续录(暂停后再次调用即为续录)
startRecord({}, (res) => {
if (res.code === 'start') {
console.log('开始录音:', res.path)
} else if (res.code === 'resume') {
console.log('续录成功:', res.path)
} else if (res.code === 'recording') {
console.log('已在录音中')
} else if (res.code === 'denied') {
console.log('麦克风权限被拒绝')
} else if (res.code === 'error') {
console.log('出错:', res.message)
}
})
// 暂停
pauseRecord({}, (res) => {
console.log(res.code) // pause
})
// 停止
stopRecord({}, (res) => {
if (res.code === 'stop') {
console.log('录音文件路径:', res.path)
// 可直接上传
uni.uploadFile({
url: '你的上传接口',
filePath: res.path,
name: 'recordFile',
success: (uploadRes) => {
console.log('上传成功:', uploadRes.data)
}
})
}
})
API 说明
startRecord(options?, callback?)
开始录音;若当前处于暂停状态,则继续录音(写入同一文件)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| options | Object | 否 | 预留配置(format / sampleRate / channels) |
| callback | Function | 否 | 结果回调,参数见下表 |
回调 res:
| code | 说明 | 是否带 path |
|---|---|---|
start |
开始录音成功 | 是 |
resume |
续录成功 | 是 |
recording |
已在录音中,忽略本次调用 | 是 |
denied |
麦克风权限被拒绝 | 否 |
error |
出错,message 为错误描述 |
否 |
pauseRecord(options?, callback?)
暂停录音。
| code | 说明 |
|---|---|
pause |
暂停成功 |
error |
当前未在录音状态 |
stopRecord(options?, callback?)
停止录音并释放资源。
| code | 说明 | 是否带 path |
|---|---|---|
stop |
停止成功 | 是(最终文件路径) |
error |
当前未在录音状态 | 否 |
文件路径说明
- Android:
/Android/data/<包名>/files/record_xxx.m4a(应用外部私有目录,无需存储权限,卸载自动清理) - iOS:应用 Documents 目录
record_xxx.m4a
返回的是本地绝对路径,可直接用于 uni.uploadFile、uni.createInnerAudioContext().src 等。
注意事项
- 必须使用自定义基座运行与云打包(uts 插件特性)。
- 请在真机测试,模拟器无麦克风。
- 录音期间建议不要切换应用;iOS 如需后台录音,请在插件
app-ios/index.uts中追加UIBackgroundModes: audio配置。 - 停止后请及时上传或保存路径,避免用户清理数据后文件丢失。
常见问题
Q:提示找不到插件?
A:确认已放入 uni_modules 且插件 ID 为 czq-record,并重新制作自定义基座。
Q:Android 返回的路径在 Android/data 下,别的 App 读不到?
A:这是有意设计,无需存储权限、卸载自动清理。如必须放到公共目录,请自行修改 Android 平台实现中的 buildFilePath()。
更新日志
1.0.0
- 首发:开始 / 暂停 / 续录 / 停止,自动权限申请

收藏人数:
https://ext.dcloud.net.cn/plugin?name=czq-record
购买源码授权版(
试用
赞赏(1)
下载 2
赞赏 0
下载 12657945
赞赏 1955
赞赏
京公网安备:11010802035340号