小程序InnerAudioContext.onTimeUpdate 非首次播放不监听

915 阅读1分钟

今天从山顶被同事拽下来码个鱼,结果就踩坑了。使用 InnerAudioContextonTimeUpdate 事件监听做播放进度条发现第一次播放的时候是没有问题的,而当音频播放结束后,点击按钮重新播放时发现 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。