收藏
回答

wx.createInnerAudioContext问题追踪与记录

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.createInnerAudioContext 工具 7.0.4 2.7.0

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


问题一,播放结束后,第二次点击播放,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 个回答

  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    2019-05-28

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



    2019-05-28
    赞同
    回复 1
    • 冬寒季
      冬寒季
      2019-05-28

      有业务需求是需要多个音频,而且还有可能是多个音频同时播放。及时不这样,也可能存在多个音频,隐藏预加载,无缝切换啥的。

      这个问题,跟这个有关系么?你一个的时候,也会出错。

      2019-05-28
      回复
登录 后发表内容