更新记录
1.0.0(2024-02-23)
1.设置状态回调。 2.设置结果回调。 3.设置实时帧数据回调。
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 14.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
filepicker uni调用示例
HBuilder-Integrate-AS 离线调用示例
uini_plugIn 原生插件
初始化
initRecord({
"format": "mp3",
"channelConfig": 1,
"encodingConfig": 8,
"sampleRate": 16000 })
参数 | 作用 | 可选值 |
---|---|---|
format | 输出格式 | MP3,WAV,PCM |
channelConfig | 声道 | 1.单声道。2.立体声。 |
encodingConfig | 位宽 | 8 、16 |
sampleRate | 采样率 | 8000、16000、44100 可自定义 |
设置回调
-
录音状态监听
setRecordStateListener((ret) => { this.status = JSON.stringify(ret); })
ret结果
参数 | 作用 |
---|---|
state | 状态 |
IDLE | 空闲状态 |
RECORDING | 录音中 |
PAUSE | 暂停中 |
STOP | 正在停止 |
FINISH | 录音流程结束(转换结束) |
-
录音数据监听回调
setRecordDataListener((ret) => { this.data = JSON.stringify(ret); })
ret数据
参数 作用 cul_duration 当前时长 record_data 帧数据 -
录音文件转换结束回调
setRecordResultListener((ret) => { this.result = JSON.stringify(ret); })
ret数据
参数 作用 fileName 文件名 fileSize 文件大小 filePath 文件路径 duration 时长ms
使用方式
<template>
<div>
<button type="primary" @click="initAudio">初始化</button>
</br>
<button type="primary" @click="initListener">设置监听</button>
</br>
<button type="primary" @click="startAudio">开始录音</button>
</br>
<button type="primary" @click="stopAutio">结束录音</button>
</br>
<text>错误日志:</text>
<text>{{errlog}}</text>
</br>
</br>
<text>录音状态:</text>
<text>{{status}}</text>
</br>
<text>录音结果:</text>
<text class="text-wrap">{{result}}</text>
</br>
<text>录音数据:</text>
<text class="text-wrap">{{data}}</text>
</br>
</div>
</template>
<script>
console.log("ret 222")
// 获取 module
var chen = uni.requireNativePlugin("bfrecord")
export default {
data() {
return {
errlog: '-',
data: '-',
status: '-',
result: '-',
}
},
methods: {
initAudio() {
console.log("ret 222")
// 初始化
chen.initRecord({
"format": "mp3",
"channelConfig": 1,
"encodingConfig": 8,
"sampleRate": 16000
})
console.log("初始化")
},
initListener() {
//录音状态监听
chen.setRecordStateListener((ret) => {
this.status = JSON.stringify(ret);
})
console.log("录音状态监听")
//录音数据监听回调
chen.setRecordDataListener((ret) => {
this.data = JSON.stringify(ret);
})
console.log("录音数据监听回调")
//录音结果监听
chen.setRecordResultListener((ret) => {
this.result = JSON.stringify(ret);
})
},
startAudio() {
chen.startRecord((res) => {
this.errlog = JSON.stringify(ret);
})
},
stopAutio() {
chen.stopRecord()
}
}
}
</script>
<style>
.text-wrap {
/* 将元素内容超出部分显示省略号 */
overflow: hidden;
word-break: break-all;
/* 单词断开换行 */
}
</style>