收藏
回答

微信8.0.34开始wx.createWebAudioContext() 播放音频中断

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug Android android 12 android13 ... 小米 红米k50至尊 huaweip40 8.0.34-8.0.38
播放音频在15秒以内中断,最长不超过16秒,需要真机测试

const  audioContext = wx.createWebAudioContext()
const base64 = wx.getFileSystemManager().readFileSync("/assets/xx.wav""base64")
const buffer = wx.base64ToArrayBuffer(base64)
audioContext.decodeAudioData(buffer, (audioBuffer) => {
let audioSource = audioContext.createBufferSource()
audioSource.buffer = audioBuffer
 audioSource.loop = true
audioSource.connect(audioContext.destination)
audioSource.start()
})


回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2023-10-17

    https://developers.weixin.qq.com/community/develop/doc/00004ae95205b06cc370ee73f61801

    2023-10-17
    有用
    回复
  • sine
    sine
    2023-07-26

    你好感谢反馈。

    小程序WebAudio实现上和浏览器的WebAudio有一点区别:js里如果不继续持有BufferSource的话,会被客户端GC掉,音频就会中断。

    解决音频中断的问题,你可以这样做:在 BufferSource.start() 之后继续持有 BufferSource 对象(比如放进一个全局对象里),然后在 BufferSource.onended 时再释放这个 BufferSource 对象。

    后续,我们也会考虑优化这个地方,尽量对齐浏览器的表现。

    2023-07-26
    有用
    回复 1
    • 卡拉
      卡拉
      2023-07-29
      好的
      2023-07-29
      回复
登录 后发表内容