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及更高版本