recordForMP3
概述
recordForMP3 模块通过封装系统的录音接口,能够快速的为开发者提供一个完整的录音功能。由于系统限制,iOS端不支持录制MP3格式音频。本模块最大的特点是支持边录制边转换的功能,比边录制完成后统一转换带来的耗时问题。 在iOS端,开始录音后模块开始录制系统支持的格式的音频,同时开启子线程执行转码操作。录音完成后,转码也会相继结束。极大的提高获取mp3格式音频的效率。
- Android系统支持的录制音频格式为:amr、aac、3gp
- iOS 系统支持的录制音频格式为:aac、wav
注意
android端so库仅支持 armeabi-v7a & arm64-v8a, 需在config.xml中进行指定,详情请参阅[配置支持的CPU设备类型](https://docs.apicloud.com/Dev-Guide/app-config-manual)
getAuthorizationStatus
查看是否有麦克风访问权限(仅ios支持, android 调用api.hasPermission()进行判断)
getAuthorizationStatus(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:错误信息
{
status: // 字符串类型;授权状态,取值范围如下:
// notDetermined 没有询问是否开启麦克风访问权限
// restricted 未授权家长限制
// denied 用户拒绝
// authorized 已授权
}
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.getAuthorizationStatus(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
requestAuthorization
请求访问麦克风权限 (仅ios支持;android调用 api.requestPermission()去请求权限)
requestAuthorization(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:错误信息
{
granted: // 布尔类型;是否授权成功
}
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.requestAuthorization(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startRecord
开始录音
startRecord({params}, callback(ret, err))
params
channel:
- 类型:数字
- 描述:(可选项)声道支持
- 默认:2
- 取值范围:
- 1 单声道
- 2 双声道
sampleRates:
- 类型:数字
- 描述:(可选项)采样率
- 默认:16000
- 取值范围:
- aac 支持范围(8000 - 96000)
- amr 支持 8000、16000
- pcm 只支持 16000
format:
- 类型:字符串
- 描述:(可选项)录制的音频格式 (Android 不支持该参数)
- 取值范围:
- aac
- pcm
- caf
- wav
- acm
- amr
savePath:
- 类型:字符串
- 描述:保存路径 (仅支持 fs://,box://, 注意:android 11后fs://路径访问受限,建议使用box://路径)
callback(ret)
ret:
- 类型:JSON对象
- 描述:返回值
{
status : true // 布尔类型;是否录音成功
}
err:
- 类型:JSON对象
- 描述:错误信息
{
msg:, //字符串类型;错误信息
code : //数字类型;错误码
}
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.startRecord({
savePath:'fs://test.amr',
format:'amr'
}, function(ret, err {
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getVolume
获取当前/实时音量
getVolume(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:返回值
{
volume: 100 // 数字类型, 当前音量
}
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.getVolume(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addVolumeListener
添加音量监听者
addVolumeListener(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:返回值
{
volume: 100 // 数字类型,当前音量
}
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.addVolumeListener(function(ret){
console.log(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pauseRecord
暂停录音,仅支持 iOS 端
pauseRecord()
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.pauseRecord();
可用性
iOS 系统
可提供的 1.0.0 及更高版本
resumeRecord
恢复录音,暂仅支持iOS端
resumeRecord()
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.resumeRecord();
可用性
iOS 系统
可提供的1.0.0及更高版本
stopRecord
停止录音
stopRecord(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:返回值
{
mp3Path:'', //字符串类型;mp3文件路径
sourcePath:'' //字符串类型;源文件路径 (android不会产生中间文件会直接生成MP3文件,因此android没有该参数)
}
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.stopRecord(function(ret){ api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getAttr
获取文件属性(文件大小和音频时长)
getAttr({params}, callback(ret))
params
path:
- 类型:字符串类型
- 描述:音频的路径 (仅支持 fs://)
callback(ret)
ret:
- 类型:JSON对象
- 描述:返回值
{
duration : 100000 // 数字类型;音频的时长;单位:ms
length : 6434734 // 数字类型;文件大小;单位:byte
}
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.getAttr({
path: 'fs://recorder/123.mp3'
}, function(ret) {
api.alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
clearCache
清除缓存目录
clearCache({params})
params
path:
- 类型:字符串类型
- 描述:缓存目录
示例代码
var recordForMP3 = api.require('recordForMP3');
recordForMP3.clearCache({
path: 'fs://recordForMP3'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本