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

本文出自APICloud官方论坛ios

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

须要注意的是:安卓跟ios所支持的格式是不同的,最好选择aac格式, 若是不选择acc格式大家就须要判断此设备是ios仍是安卓,(api.systemType使用这个能够获取是安卓仍是ios) 而后根据设备不一样去配置对应录制音频格式。app

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

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

模块文档地址:docs.apicloud.com/Client-API/…orm

接口详解: 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)); });cdn

复制代码 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; }); }); 复制代码blog

注意点2: 在关闭窗口的时候,须要调用中止录音的接口,若是不调用会出现app闪退状况: // 中止录音 audioRecorder.stopRecord(function(ret) { console.warn(JSON.stringify(ret)); }); //重置按钮关闭状态 this.Show = false; // 延迟关闭录音界面返回录音列表 setTimeout(function() { api.closeWin(); }, 300); 复制代码接口

Demo总体结构说明截图:事件

核心代码截图:

Demo最终效果图:

无录音文件时显示:

有录音文件时显示:

录音开始界面:

录音暂停界面: