采样率sampleRate有对应的编码码率,设置不合法的采样率或编码率会导致录音失败,具体对应关系如下示:
采样率? ? ? ? 编码码率
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
在录音管理器上可设置一些录音事件监听函数。在录音过程的特定事件发生时可执行一些操作。示例代码如下:
????//?监听录音开始事件
????const?recorderManager?=?wx.getRecorderManager()
????//?监听录音开始事件
????recorderManager.onStart(function()?{
??????console.log('Record?start')
????})?
????//?监听录音暂停事件
????recorderManager.onPause(function()?{
??????console.log('Record?pause')
????})
????//?监听录音继续事件
????recorderManager.onResume(function()?{
??????console.log('Record?resume')
????})
????//?监听录音结束事件
????recorderManager.onStop(function()?{
??????console.log('Record?stop')
????})
????//?监听录音错误事件
????recorderManager.onError(function(res)?{
??????console.log(res.errMsg)
????})
????//?监听已录制完指定帧大小的文件事件,如果设置了frameSize,则会回调此事件
????recorderManager.onFrameRecorded(function(res)?{
??????console.log(res.frameBuffer)?//?录音分片数据
??????console.log(res.isLastFrame)?//?当前帧是否是正常录音结束前的最后一帧?
????})
????//?基础库2.3.0开始支持
????//?监听录音因为系统占用而被中断开始事件
????//?微信语音聊天和微信视频聊天会触发此事件
????//?此事件触发后,录音会被暂停,因此pause事件会在此事件后触发
????recorderManager.onInterruptionBegin(function()?{
??????console.log('Record?interruption?begin')?
????})
????//?基础库2.3.0开始支持
????//?监听录音因为系统占用而被中断结束事件
????//?在收到interruptionBegin事件之后,小程序内所有录音会暂停,收到此事件后才可再次录音成功
????recorderManager.onInterruptionEnd(function()?{
??????console.log('Record?interruption?end')?
????})