wx.createInnerAudioContext问题追踪与记录
发布于 6 年前 作者 minshi 15040 次浏览 来自 问答

真机上没啥问题,主要是开发工具上表现差异较大。

问题一,播放结束后,第二次点击播放,TimeUpdate不会回调;

问题二,如果添加了destroy方法之后,会导致TimeUpdate在销毁的过程中报错,如截图。

对于TimeUpdate虽然可以通过Canplay添加pause和play方式临时解决,但是TimeUpdate事件未被销毁,更换地址播放时,会导致之前的音频地址同时也在播放。

调试跟踪看了下,官方对于TimeUpdate的事件处理与其他如Play、Ended等事件处理机制是不一样的,主要是要考虑TimeUpdate每隔250ms执行一次回调,实际上重复注册使用的是同一个事件。

通过WeakMap+随机时间戳字符串的方式进行关联,但是貌似事件注册那里存在问题,注册的实际是undefined,使得off去获取的时候,得到的是undefined,就抛出提示截图的错误。

  • 当前 Bug 的表现(可附上截图)
  • 预期表现

能够正常实现TimeUpdate回调,以及正常销毁。

  • 复现路径

pages/index/index

  • 提供一个最简复现 Demo

https://developers.weixin.qq.com/s/BUc5iEmR7J8w

1 回复

这里是出于什么原因实例化这么多个InnerAudioContext呢?

回到顶部