获取全局唯一的录音管理器 RecorderManager
全局唯一的录音管理器
开始录音
Object object
| 属性 | 类型 | 默认值 | 必填 | 说明 | |
|---|---|---|---|---|---|
| duration | Number | 60000 | 否 | 录音的时长,单位 ms,最大值 600000(10 分钟) | |
| sampleRate | Number | 8000 | 否 | 采样率 | |
| numberOfChannels | Number | 2 | 否 | 录音通道数 | |
| encodeBitRate | Number | 48000 | 否 | 编码码率,有效值见下表格 | |
| format | String | aac | 否 | 音频格式 | |
| frameSize | Number | 否 | 指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3、pcm 格式。 | ||
| audioSource | String | auto | 否 | 指定录音的音频输入源 |
sampleRate(采样率)
| 采样率 | 编码码率 |
|---|---|
| 8000 | 8000 采样率 |
| 11025 | 11025 采样率 |
| 12000 | 12000 采样率 |
| 16000 | 16000 采样率 |
| 22050 | 22050 采样率 |
| 24000 | 24000 采样率 |
| 32000 | 32000 采样率 |
| 44100 | 44100 采样率 |
| 48000 | 48000 采样率 |
numberOfChannels(录音通道数)
| 合法值 | 说明 |
|---|---|
| 1 | 1 个通道 |
| 2 | 2 个通道 |
format(音频格式)
| 合法值 | 说明 |
|---|---|
| mp3 | mp3 格式 |
| aac | aac 格式 |
| wav | wav 格式 |
| PCM | PCM 格式 |
audioSource(指定录音的音频输入源)
| 合法值 | 说明 |
|---|---|
| auto | 自动设置,默认使用手机麦克风,插上耳麦后自动切换使用耳机麦克风,所有平台适用 |
| mic | 麦克风(没插耳麦时是手机麦克风,插耳麦时是耳机麦克风),仅限 Android |
| camcorder | 同 mic,适用于录制音视频内容,仅限 Android |
| voice_communication | 同 mic,适用于实时沟通,仅限 Android |
| voice_recognition | 同 mic,适用于语音识别,仅限 Android |
每种采样率有对应的编码码率范围有效值,设置不合法的采样率或编码码率会导致录音失败,具体对应关系如下表。
| 采样率 | 编码码率 |
|---|---|
| 8000 | 16000 ~ 48000 |
| 11025 | 16000 ~ 48000 |
| 12000 | 24000 ~ 64000 |
| 16000 | 24000 ~ 96000 |
| 22050 | 32000 ~ 128000 |
| 24000 | 32000 ~ 128000 |
| 32000 | 48000 ~ 192000 |
| 44100 | 64000 ~ 320000 |
| 48000 | 64000 ~ 320000 |
暂停录音
继续录音
停止录音
监听录音开始事件
录音开始事件的监听函数
监听录音继续事件
录音继续事件的监听函数
监听录音暂停事件
录音暂停事件的监听函数
监听录音结束事件
录音结束事件的监听函数
| 属性 | 类型 | 说明 |
|---|---|---|
| tempFilePath | String | 录音文件的临时路径 (本地路径) |
| duration | Number | 录音总时长,单位:ms |
| fileSize | Number | 录音文件大小,单位:Byte |
监听已录制完指定帧大小的文件事件。如果设置了 frameSize,则会回调此事件。
已录制完指定帧大小的文件事件的监听函数
| 属性 | 类型 | 说明 |
|---|---|---|
| frameBuffer | ArrayBuffer | 录音分片数据 |
| isLastFrame | Boolean | 当前帧是否正常录音结束前的最后一帧 |
监听录音错误事件
录音错误事件的监听函数
| 属性 | 类型 | 说明 |
|---|---|---|
| errMsg | String | 错误信息 |
const recorderManager = qg.getRecorderManager();
recorderManager.onStart(() => {
console.log("recorder start");
});
recorderManager.onPause(() => {
console.log("recorder pause");
});
recorderManager.onStop(res => {
console.log("recorder stop", res);
const { tempFilePath } = res;
});
recorderManager.onFrameRecorded(res => {
const { frameBuffer } = res;
console.log("frameBuffer.byteLength", frameBuffer.byteLength);
});
const options = {
duration: 10000,
sampleRate: 44100,
numberOfChannels: 1,
encodeBitRate: 192000,
format: "aac",
frameSize: 50
};
recorderManager.start(options);