更新记录

1.8.0(2024-04-26)

  • 优化安卓端 判断麦克风被占用的兼容性问题。

1.7.9(2024-04-19)

  • 增加 检测 麦克风是否被占用的回调, 当录音过程中,遇到手机来电,或微信来电通话时,接听,会暂定录音,并回调检测到麦克风被占用。
  • 增加 安卓端 通知栏 提示文本更新,在需要时,可以修改状态栏提示语。

1.7.8(2023-05-26)

  • 删除安卓端icon 图片与其他同名。
查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 17

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


Android 和 IOS 原生录音插件,支持暂停继录

温馨提示一下, 这个插件不支持通话录音,重要的事说三遍:不支持通话录音,不支持通话录音,不支持通话录音

一 、插件使用

  • 引用插件
const plug=uni.requireNativePlugin("html5app-recordaudio");

关于是否能在后台录音,会不会被清理掉

  • Android 如果需要在后台录音的,showNotification 设置为true 打开状态栏通知服务,来维持应用进入后台之前,能够继续录音而不被清理掉。

  • IOS 需要添加麦克风录音权限

 "ios" : {
    "privacyDescription" : {
        "NSMicrophoneUsageDescription" : "用于录制音频,是否允许?"
    },
    "UIBackgroundModes" : [ "audio" ] //允许音频在后台播放,需要后台录音,需要添加此权限
},

二 、插件方法说明

方法名称 说明
start 开始录音
pause 暂停录音
resume 恢复录音
stop 停止录音
deleteCache 删除所有已录制的录音缓存文件
updateTime 录音时间回调事件,单位秒
updateNotificationText 安卓通知栏,更新文本提示语

1.开始录音


        plug.start({
        format:"wav", //音频格式,wav,mp3,pcm
        rate:16000, //音频采样率,8000hz,16000hz,44100hz 
        encode:16 //音频位宽,8位,16位 
        channel:2, //通道,1=>单声道,2=>双声道
        saveDir:"",  //自定义保存文件夹路径,留空默认保存路径,例如:let path=plus.io.convertLocalFileSystemURL("_doc");
        showNotification:true, //是否显示状态栏,开启可以增强应用在后台录音和息屏录音的存活率
        notificationName:"", //状态栏,默认是应用名称
        notificationText:"正在录音中,不要关闭应用" //内容显示,默认显示是正在录音中...
        },function(e){

        console.log(JSON.stringify(e));
        }); 

        //监听录音回调进度, 可用可不用,不是必须的。
        plug.updateTime(function(s){

            //console.log(s);
              //1分钟结束录音
            if(s==60)
            {
                _this.stop();
            }

        });

回调参数

code 参数 说明
1 暂停中
101 检测到麦克风被其他应用占用,点恢复录音可以继续
2 录音中
0 录音结束

监听录音回调进度

        //监听录音回调进度, 可用可不用,不是必须的。
        plug.updateTime(function(s){

            //console.log(s);
              //1分钟结束录音
            if(s==60)
            {
                _this.stop();
            }

        });

2.暂停录音

plug.pause();

3.继续(恢复)录音

plug.resume();

4.停止录音

  • 返回录音文件
plug.stop(function(e){              

    console.log(e.filePath);

});
  • 返回录音参数
{"fileSize":218880,
"code":0,
"duration":7,
"filePath":"/storage/emulated/0/Android/data/uni.UNI7B74429/cache/RecordAudio/record_20211020_20_19_02.wav",
"msg":"录音结束"
}

5.删除缓存的录音文件

plug.deleteCache();

5.更新通知栏,通知内容

  • 如果开启安卓通知栏显示,可以在需要时,根据不同的录音状态,显示不同的通知栏提示语
plug.updateNotificationText("暂停录音...");

隐私、权限声明

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

需要用到的系统权限: 麦克风权限。

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

插件不采集任何数据。

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

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