资讯专栏INFORMATION COLUMN

开发者进阶之路 |audioRecorder录音模块Demo

fou7 / 864人阅读

摘要:本文出自官方论坛模块通过封装系统的录音接口,能够快速的为开发者提供一个完整的录音功能。该模块提供和版本,录音方式及录制的音频格式也依赖于相关系统。

本文出自APICloud官方论坛

audioRecorder 模块通过封装系统的录音接口,能够快速的为开发者提供一个完整的录音功能。
该模块提供Android和iOS版本,录音方式及录制的音频格式也依赖于相关系统。

需要注意的是:安卓跟ios所支持的格式是不一样的,最好选择aac格式,
如果不选择acc格式你们就需要判断此设备是ios还是安卓,(api.systemType使用这个可以获取是安卓还是ios)
然后根据设备不同去配置对应录制音频格式。

Android系统支持的录制音频格式为:amr、aac、3gp

iOS 系统支持的录制音频格式为:aac、wav

模块文档地址:https://docs.apicloud.com/Cli...

接口详解:
startRecord接口:
一定需要详细看下sampleRates跟format这俩个参数对应配置,看自己需求去设置,不然配置错误有可能出现未知错误,或者报错,一定看清楚format配置类型对应的sampleRates取值范围是否对应了文档要求;
var audioRecorder = api.require("audioRecorder");
var audioRecorder = api.require("audioRecorder");
audioRecorder.startRecord({

channel:2,                        //默认是2    选项有俩个  1 单声道   2 立体声道,如果对于声道没有要求可以直接实际代码可以不写;
sampleRates:16000,           //  设置采样率   aac 支持范围(8000 - 96000)  amr 支持 8000、16000    pcm 只支持 16000
savePath:"fs://test.amr",    //  这块是配置录音存储的位置
format:"amr"            //设置音频格式  aac (支持Android 4.1+ & iOS)    pcm (支持Android & iOS)   amr (仅支持Android)  3gp (仅支持Android)   caf (仅支持 iOS)  wav (仅支持 iOS)  acm (仅支持 iOS)

}, function(ret, err){

console.log(JSON.stringify(ret));

});

复制代码
getVolume接口:
获取录音的时时声音大小,个人感觉如果配置了监听audioRecorder.addEventListener({name: "volume" 事件,这个接口可以不需要调用
var audioRecorder = api.require("audioRecorder");
audioRecorder.getVolume(function(ret){

console.log(JSON.stringify(ret));

});
复制代码
addEventListener接口:
此接口是监听录音时获取时时声音大小,这样可以拿来作为录音状态喇叭大小的,此处楼主虽然获取了,但是没有去显示这个功能;
楼主在监听这个接口调用getAttr接口获取音频时长,这样就能配置录音的时间进度00:00:00
//监听声音

            audioRecorder.addEventListener({
                    name: "volume"
            }, function(ret) {
                    console.warn(JSON.stringify(ret));
                    window.ListVue.volume = ret.volume;
                    // 获取录音时间进度
                    audioRecorder.getAttr({
                            path: window.ListVue.recording
                    }, function(ret) {
                            window.ListVue.Time = ret.duration;
                    });
            });

复制代码

注意点2: 在关闭窗口的时候,需要调用停止录音的接口,如果不调用会出现app闪退情况:
// 停止录音

            audioRecorder.stopRecord(function(ret) {
                    console.warn(JSON.stringify(ret));
            });
            //重置按钮关闭状态
            this.Show = false;
            // 延迟关闭录音界面返回录音列表
            setTimeout(function() {
                    api.closeWin();
            }, 300);

复制代码

Demo整体结构说明截图:


核心代码截图:


Demo最终效果图:

无录音文件时显示:

有录音文件时显示:

录音开始界面:

录音暂停界面:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104910.html

相关文章

  • HTML用javascrip在浏览器上实现语音输入和语义理解功能(speex压缩)

    摘要:返回的字串如下我要听三国演义这本书正在努力搜索中,请稍等我要听三国演义这本书三国演义通过解析这段,可以得到类型,用于查询书名,是表示行为是播放。 基于javascript用olamisdk实现web端语音识别语义理解(speex压缩) 转载请注明原文地址:传送 olami 开放平台 sdk 除了支持语音识别功能外,更强大的在于支持语义理解功能,在 Android 平台和 iOS 平台都...

    darkbug 评论0 收藏0
  • HTML用javascrip在浏览器上实现语音输入和语义理解功能(speex压缩)

    摘要:返回的字串如下我要听三国演义这本书正在努力搜索中,请稍等我要听三国演义这本书三国演义通过解析这段,可以得到类型,用于查询书名,是表示行为是播放。 基于javascript用olamisdk实现web端语音识别语义理解(speex压缩) 转载请注明原文地址:传送 olami 开放平台 sdk 除了支持语音识别功能外,更强大的在于支持语义理解功能,在 Android 平台和 iOS 平台都...

    沈建明 评论0 收藏0

发表评论

0条评论

fou7

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<