getRecorderManager 1.0.0+

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

recorderManager支持方法列表

start(options)

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

名称数据类型属性默认值描述
durationnumberoptional60000录音自动完成时长,单位ms
sampleRatenumberoptional44100采样率,有效值可以是8000, 16000, 44100
numberOfChannelsnumberoptional1录音通道数,有效值可以是12
encodeBitRatenumberoptional | 码率
frameSizenumberoptional | 帧大小,单位KB。如果设置了值,那么每当录音内容达到帧大小时会通过onFrameRecorded返回内容。

⚠️ 注意

已知问题,暂时不支持设置 format。目前 ios 只可返回 aac(m4a)格式,安卓只可返回 wav 格式,请注意!

sampleRateencodeBitRate的对应关系如下:

采样率编码码率
800016000 ~ 48000
1102516000 ~ 48000
1200024000 ~ 64000
1600024000 ~ 96000
2205032000 ~ 128000
2400032000 ~ 128000
3200048000 ~ 192000
4410064000 ~ 320000
4800064000 ~ 320000

pause()

暂停录音

resume()

继续录音

stop()

停止录音

onStart(() => {})

录音开始事件回调

onPause(() => {})

录音暂停事件回调

onStop((res) => {})

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

onResume((res) => {})

录音继续事件的回调

|

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;
});

const options = {
  duration: 10000,
  sampleRate: 44100,
  numberOfChannels: 1,
  encodeBitRate: 192000,
  format: "aac",
  frameSize: 50
};

recorderManager.start(options);

已知问题

  • start方法暂不支持audioSource参数
  • 目前 ios 输出格式为 m4a,安卓输出格式为 wav。后续 Android 端也会输出 m4a