分片录音的回调参数isLastFrame不正确
发布于 7 年前 作者 jpan 9360 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)
  • 预期表现
  • 复现路径
  • 提供一个最简复现 Demo

小程序录音时,设定frameSize后,在回调函数

recorderManager.onFrameRecorded

接收到的isLastFrame不正确。

即使是最后一个分片返回的也是false

代码片段

const options = {
  duration: 10000, // 录音的时长,单位 ms,最大值 600000(10 分钟)
  sampleRate: 16000, // 采样率
  numberOfChannels: 1, // 录音通道数
  encodeBitRate: 48000, // 编码码率
  format: 'mp3', // 音频格式
  frameSize: 1 //200ms的切片大小
}
recorderManager.onFrameRecorded(res => {
  const {
    frameBuffer,
    isLastFrame
  } = res
  console.log(res)
  ws.sendMessage(api.Frame, {}, {
    seq: seq++,
    isEnd: isLastFrame ? 1 : 0,
    data: wx.arrayBufferToBase64(frameBuffer),
  })
 
})

上面的ws.sendMessage是用websocket送信。

2 回复

你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

请问楼主知道怎么解析frameBuffer嘛

回到顶部