wx.createInnerAudioContext问题追踪与记录
真机上没啥问题,主要是开发工具上表现差异较大。
问题一,播放结束后,第二次点击播放,TimeUpdate不会回调;
问题二,如果添加了destroy方法之后,会导致TimeUpdate在销毁的过程中报错,如截图。
对于TimeUpdate虽然可以通过Canplay添加pause和play方式临时解决,但是TimeUpdate事件未被销毁,更换地址播放时,会导致之前的音频地址同时也在播放。
调试跟踪看了下,官方对于TimeUpdate的事件处理与其他如Play、Ended等事件处理机制是不一样的,主要是要考虑TimeUpdate每隔250ms执行一次回调,实际上重复注册使用的是同一个事件。
通过WeakMap+随机时间戳字符串的方式进行关联,但是貌似事件注册那里存在问题,注册的实际是undefined,使得off去获取的时候,得到的是undefined,就抛出提示截图的错误。
- 当前 Bug 的表现(可附上截图)
- 预期表现
能够正常实现TimeUpdate回调,以及正常销毁。
- 复现路径
pages/index/index
- 提供一个最简复现 Demo