播放音频在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()
})
https://developers.weixin.qq.com/community/develop/doc/00004ae95205b06cc370ee73f61801
你好感谢反馈。
小程序WebAudio实现上和浏览器的WebAudio有一点区别:js里如果不继续持有BufferSource的话,会被客户端GC掉,音频就会中断。
解决音频中断的问题,你可以这样做:在 BufferSource.start() 之后继续持有 BufferSource 对象(比如放进一个全局对象里),然后在 BufferSource.onended 时再释放这个 BufferSource 对象。
后续,我们也会考虑优化这个地方,尽量对齐浏览器的表现。