更新记录

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 等。

注意事项

  1. 必须使用自定义基座运行与云打包(uts 插件特性)。
  2. 请在真机测试,模拟器无麦克风。
  3. 录音期间建议不要切换应用;iOS 如需后台录音,请在插件 app-ios/index.uts 中追加 UIBackgroundModes: audio 配置。
  4. 停止后请及时上传或保存路径,避免用户清理数据后文件丢失。

常见问题

Q:提示找不到插件? A:确认已放入 uni_modules 且插件 ID 为 czq-record,并重新制作自定义基座。

Q:Android 返回的路径在 Android/data 下,别的 App 读不到? A:这是有意设计,无需存储权限、卸载自动清理。如必须放到公共目录,请自行修改 Android 平台实现中的 buildFilePath()。

更新日志

1.0.0

  • 首发:开始 / 暂停 / 续录 / 停止,自动权限申请

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android:RECORD_AUDIO;iOS:NSMicrophoneUsageDescription

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件仅使用设备麦克风采集音频并写入应用本地目录,不上传、不收集任何用户数据。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

暂无用户评论。