getRecorderManager 1.0.0+

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

recorderManager支持方法列表

start(options)

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

名称数据类型属性默认值描述
durationnumberoptional60000录音自动完成时长,单位ms
sampleRatenumberoptional44100采样率,有效值可以是8000, 16000, 44100
numberOfChannelsnumberoptional1录音通道数,有效值可以是12
encodeBitRatenumberoptional</td><td>码率</td></tr><tr><td><code>format</code></td><td><code>string</code></td><td>optional</td><td><code>mp3</code></td><td>音频格式,有效值可以是<code>mp3</code>或<code>aac</code></td></tr><tr><td><code>frameSize</code></td><td><code>number</code></td><td>optional</td><td>帧大小,单位KB。如果设置了值,那么每当录音内容达到帧大小时会通过onFrameRecorded返回内容。

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,表示录音文件的地址。

onFrameRecorded((res) => {})

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

名称数据类型描述
frameBufferarraybuffer帧数据
isLastFrameboolean是否为最后一帧

onError((res) => {})

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

代码示例

  1. const recorderManager = tt.getRecorderManager()
  2. recorderManager.onStart(() => {
  3. console.log('recorder start')
  4. });
  5. recorderManager.onPause(() => {
  6. console.log('recorder pause')
  7. });
  8. recorderManager.onStop((res) => {
  9. console.log('recorder stop', res)
  10. const { tempFilePath } = res
  11. });
  12. recorderManager.onFrameRecorded((res) => {
  13. const { frameBuffer } = res
  14. console.log('frameBuffer.byteLength', frameBuffer.byteLength)
  15. });
  16. const options = {
  17. duration: 10000,
  18. sampleRate: 44100,
  19. numberOfChannels: 1,
  20. encodeBitRate: 192000,
  21. format: 'aac',
  22. frameSize: 50
  23. };
  24. recorderManager.start(options);

已知问题

  • start方法暂不支持audioSource参数

原文: https://developer.toutiao.com/docs/api/getRecorderManager.html