RecorderManager qq.getRecorderManager()

返回值

RecorderManager

RecorderManager

全局唯一的录音管理器

方法

RecorderManager.start(Object object)

开始录音

RecorderManager.pause()

暂停录音

RecorderManager.resume()

继续录音

RecorderManager.stop()

停止录音

RecorderManager.onStart(function callback)

监听录音开始事件

RecorderManager.onResume(function callback)

监听录音继续事件

RecorderManager.onPause(function callback)

监听录音暂停事件

RecorderManager.onStop(function callback)

监听录音结束事件

RecorderManager.onFrameRecorded(function callback)

监听已录制完指定帧大小的文件事件。如果设置了 frameSize,则会回调此事件。

RecorderManager.onError(function callback)

监听录音错误事件

RecorderManager.onInterruptionBegin(function callback)

监听录音因为受到系统占用而被中断开始事件。以下场景会触发此事件:QQ语音聊天、QQ视频聊天。此事件触发后,录音会被暂停。pause 事件在此事件后触发

RecorderManager.onInterruptionEnd(function callback)

监听录音中断结束事件。在收到 interruptionBegin 事件之后,小程序内所有录音会暂停,收到此事件之后才可再次录音成功。

示例代码

RecorderManager.onError(function callback)

参数

function callback

录音错误事件的回调函数

参数

Object res

.onFrameRecorded

RecorderManager.onFrameRecorded(function callback)

监听已录制完指定帧大小的文件事件。如果设置了 frameSize,则会回调此事件。

参数

function callback

已录制完指定帧大小的文件事件的回调函数

参数

Object res

属性类型说明
frameBufferArrayBuffer录音分片数据
isLastFrameboolean当前帧是否正常录音结束前的最后一帧

.onInterruptionBegin

RecorderManager.onInterruptionBegin(function callback)

监听录音因为受到系统占用而被中断开始事件。以下场景会触发此事件:QQ语音聊天、QQ视频聊天。此事件触发后,录音会被暂停。pause 事件在此事件后触发

参数

function callback

录音因为受到系统占用而被中断开始事件的回调函数

.onInterruptionEnd

RecorderManager.onInterruptionEnd(function callback)

监听录音中断结束事件。在收到 interruptionBegin 事件之后,小程序内所有录音会暂停,收到此事件之后才可再次录音成功。

参数

function callback

录音中断结束事件的回调函数

RecorderManager.onPause(function callback)

监听录音暂停事件

参数

function callback

录音暂停事件的回调函数

.onResume

RecorderManager.onResume(function callback)

监听录音继续事件

参数

function callback

录音继续事件的回调函数

.onStart

RecorderManager.onStart(function callback)

参数

function callback

录音开始事件的回调函数

.onStop

RecorderManager.onStop(function callback)

监听录音结束事件

参数

function callback

录音结束事件的回调函数

参数

Object res

属性类型说明
tempFilePathstring录音文件的临时路径

RecorderManager.pause()

暂停录音

.resume

RecorderManager.resume()

继续录音

.start

RecorderManager.start(Object object)

开始录音

参数

Object object

object.sampleRate 的合法值

说明
80008000 采样率
1102511025 采样率
1200012000 采样率
1600016000 采样率
2205022050 采样率
2400024000 采样率
3200032000 采样率
4410044100 采样率
4800048000 采样率

object.numberOfChannels 的合法值

说明
11 个通道
22 个通道

object.format 的合法值

object.audioSource 的合法值

说明
auto自动设置,默认使用手机麦克风,插上耳麦后自动切换使用耳机麦克风,所有平台适用
buildInMic手机麦克风,仅限 iOS
headsetMic耳机麦克风,仅限 iOS
mic麦克风(没插耳麦时是手机麦克风,插耳麦时是耳机麦克风),仅限 Android
camcorder同 mic,适用于录制音视频内容,仅限 Android
voice_communication同 mic,适用于实时沟通,仅限 Android
voice_recognition同 mic,适用于语音识别,仅限 Android

采样率与编码码率限制

每种采样率有对应的编码码率范围有效值,设置不合法的采样率或编码码率会导致录音失败,具体对应关系如下表。

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

.stop

RecorderManager.stop()

停止录音