更新记录

V1.0(2024-09-19) 下载此版本

初始版本,后续更新完整的demo。在使用过程中如有疑问请联系作者


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.0,Android:4.4,iOS:不支持,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

1.uniapp引入原生插件,目前仅支持android。支持在线打包

2.引入插件

// 1.在项目根目录下创建nativeplugins文件夹
// 2.需要在uni_modules下找到xiangquan-RecordPlay文件夹,将里面的TestModule文件复制到nativeplugins文件夹中
// 3.manifest.json文件中配置App原生插件
// 4.选择本地插件TestModule
// 引入插件成功后需要通过一下代码添加到项目中进行使用
// 注意:真机运行时需要进行自定义基座才能使用原生插件

testModule = uni.requireNativePlugin("TestModule");

3.使用插件进行录音时先获取录音权限。可通过plus进行权限获取

// 获取录音权限
plus.android.requestPermissions(['android.permission.RECORD_AUDIO'], rs => {
    if (e.deniedAlways.length > 0) console.log("用户被永久拒绝");
    if (e.deniedPresent.length > 0) console.log("用户被临时拒绝");
    if (e.granted.length > 0) console.log("用户已被授权");
})

4.插件提供的方法示例

// 初始化录音配置
testModule.config({
    packageName: "com.android", // 项目包路径,用于生成录音文件存放目录
    appIdName: "****", // appid,用于生成录音文件存放目录
    sampleRate: 8000, // 录音采样率 默认8K采样率
    bufferSize: 16000 // 录音片段大小,当录音数据达到bufferSize大小时触发录音的回调片段
}, rs => {
    console.log("录音初始化成功,保存的目录为:", rs.path)
},err=>{
    console.log("初始化录音失败:",err)
})

// 获取存放录音文件的目录
testModule.initHRVCacheDirPath(rs => {
    console.log("文件存放目录:", rs.path)
})

// 删除文件
/**
 * path: 文件地址
 * callback: 回调函数
 */
testModule.deleteFile(path, callback)

// 启动录音
testModule.startRecordAudio({}, success => {
    // 启动成功回调
    },err => {
        // 启动失败回调
    },change => {
        // 录音片段回调 base64Data: 录音片段base64字符串格式,data:array格式=》pcm原始数据,msg: 说明(音频片段)
        const {base64Data, data, msg} = change
    },final => {
        // 一定会执行的回调
    }
);

// 停止录音
testModule.stopRecordAudio(rs => {
    // 停止录音回调
});

// 初始化播放器 sampleRate:播放数据的采样率, back:回调函数
testModule.configTrack(sampleRate, back)

// 向播放器写入数据 base64Data:base64字符串格式的pcm片段,对应启动录音的录音片段回调函数中的base64Data
testModule.plusTrackBase64(base64Data, rs => {
    console.log("输入数据")
})

// 停止播放
testModule.stopTrack(rs => {
    console.log("停止了播放器")
})

隐私、权限声明

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

android.permission.RECORD_AUDIO

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

本插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问