今天从山顶被同事拽下来码个鱼,结果就踩坑了。使用 InnerAudioContext 的 onTimeUpdate 事件监听做播放进度条发现第一次播放的时候是没有问题的,而当音频播放结束后,点击按钮重新播放时发现 onTimeUpdate 不再触发。翻了文档和社区的文章,帖子把官方都@出来了,证明应该确实是个bug。微信社区原帖链接developers.weixin.qq.com/community/d…
一般奇怪的问题都会有神奇的解决方案。
尝试了几种方案,最终最简便的方式如下:
/*TODO:BUG 二次播放不触发 onTimeUpdate*/
myaudio.onEnded(function(){
...
//调用seek,问题解决
myaudio.seek(0)
})
注:myaudio = wx.createInnerAudioContext({})
补充:不知官方是否针对这个问题做过更新,似乎之前的文章有提到过seek(0)无法解决,笔者这边IOS端以及安卓端都是可行的,记录时间 2020-08-20。