字节跳动小程序开发API getRecorderManager

2019-08-20 16:50 更新

获取全局唯一的recorderManager。通过recorderManager进行录音操作和管理。

recorderManager支持方法列表


start(options)

开始录音,传入的options对象参数有:

名称 数据类型 属性 默认值 描述
duration number optional 60000 录音自动完成时长,单位ms
sampleRate number optional 44100 采样率,有效值可以是80001600044100
numberOfChannels number optional 1 录音通道数,有效值可以是12
encodeBitRate number optional `` 码率
format string optional mp3 音频格式,有效值可以是mp3aac
frameSize number optional `` 帧大小,单位KB。如果设置了值,那么每当录音内容达到帧大小时会通过onFrameRecorded返回内容。

sampleRate和encodeBitRate的对应关系如下:

采样率 编码码率
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

pause()

暂停录音

resume()

继续录音

stop()

停止录音

onStart(() => {})

录音开始事件回调

onPause(() => {})

录音暂停事件回调

onStop((res) => {})

录音停止事件回调,res对象带有一个类型为string的属性tempFilePath,表示录音文件的地址。

onFrameRecorded((res) => {})

录音片段完成事件回调,res的属性包括:

名称 数据类型 描述
frameBuffer arraybuffer 帧数据
isLastFrame boolean 是否为最后一帧

onError((res) => {})

录音错误事件回调,res对象带有一个类型为string的属性errMsg,表示错误信息。

代码示例


const recorderManager = tt.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);

已知问题


  • start方法暂不支持audioSource参数


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号