更新记录

1.0.0(2026-03-18)

自定义录音,录音数据pcm实时回调,保存本地文件,转国标G711,转base64


平台兼容性

uni-app(3.7.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(3.7.0)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - -

其他

多语言 暗黑模式 宽屏模式

自定义录音,录音数据pcm实时回调,保存本地文件,转国标G711,转base64

功能

  • 自定义录音
  • 录音数据实时帧回调
  • 保存本地文件
  • 转国标G711,转base64

集成步骤

  1. 拷贝demo里的AndroidManifest.xml、Info.plist、harmony-configs文件到项目根目录
  2. 本页面右上角可以点击"使用HBuilderX导入示例项目"下载demo,导入demo的时候选vue3,插件支持vue2和vue3
  3. 如需定制或增加功能请点击插件标题下方的"进入交流群"私聊作者 pcm

    接口

    import {
    UTSAudio,
    getFilesDir
} from "@/uni_modules/wrs-uts-audio"
  • 设置录音回调

// 设置录音回调
audio.onCallback((resp) => {
    let opt = resp.opt
    switch (opt) {
        case "onRecording": {
            // 录音实时数据回调
            // console.log("audioData:" + JSON.stringify(resp))
            let originData = resp.originData
            let g711Data = resp.g711Data
            if(g711Data) {
                console.log("g711adata")
            }
            let base64 = resp.base64
            if(base64) {
                    console.log("base64")
            }
        }
        break;
        case "onRecordFinish": {
            // 录音完成回调
            let flag = resp.flag
            if (flag) {

                this.current.src = resp.filePath
                this.showMsg("录音完成filePath:" + this.current.src)
            } else {
                this.showMsg("失败 code:" + resp.code + " msg: " + resp.msg)
            }
        }
        break;
        default:
            break;
    }
})
  • 开始录音

let imageName = getUserName()
let filePath = ""
switch (uni.getSystemInfoSync().platform) {
    case 'harmonyos': {
        filePath = getFilesDir() + "/" + imageName + ".wav"
    }
    break;
    default: {
        filePath = plus.io.convertLocalFileSystemURL("_download/" + imageName + ".wav");
    }
    break;
}
let params = {}
params.filePath = filePath
params.sampleRate = 44100 // 采样率
audio.startRecord(params)
  • 停止录音

audio.stopRecord()
  • 暂停录音

audio.pauseRecord()
  • 继续录音

audio.resumeRecord()

隐私、权限声明

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

麦克风权限

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

插件不采集任何数据

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