分片录音的回调参数isLastFrame不正确

发布于 8 年前作者 jpan9458 次浏览最后编辑 8 年前来自 ask
  • 当前 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 回复
qiang49
qiang491 楼6 年前

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

xxie
xxie2 楼6 年前

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