更新记录

1.0.0(2024-02-23)

1.设置状态回调。 2.设置结果回调。 3.设置实时帧数据回调。


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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 可自定义

设置回调

  1. 录音状态监听

    setRecordStateListener((ret) => {
            this.status = JSON.stringify(ret);
    })

​ ret结果

参数 作用
state 状态
IDLE 空闲状态
RECORDING 录音中
PAUSE 暂停中
STOP 正在停止
FINISH 录音流程结束(转换结束)
  1. 录音数据监听回调

    setRecordDataListener((ret) => {
        this.data = JSON.stringify(ret);
    })

    ret数据

    参数 作用
    cul_duration 当前时长
    record_data 帧数据
  2. 录音文件转换结束回调

    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>

隐私、权限声明

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

<uses-permission android:name="android.permission.RECORD_AUDIO" />

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

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

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