如题,当使用AudioContext的onXXX挂载事件处理器的时候,由于目前的机制只提供挂载,不提供反挂载,所以如果重复调用某个onXXX挂载处理器,会触发以下的报警信息(可能会导致内存泄漏)
WAService.js:4 (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
测试代码
let ctx = wx.createInnerAudioContext();
ctx.onCanplay(() => {});
.... // 重复9次
ctx.onCanplay(() => {}); // 这里会出现上面的warning
希望可以提供取消挂载事件的接口让我们可以清理不必要的事件,以达到重用实例的目的,不然每次播放新的音频,都只能创建一个新的实例,并且播放完成后都只能销毁实例,因为不知道这个逻辑重不重io,所以担心效率比较低
1.9.0 版本开始,InnerAudioContext 新增了 off* 方法,用于取消监听事件,详见 文档 。
你好,你的反馈我们已收到,我们会在后续的版本中增加此功能。
createVideoContext也有这问题 希望提供相应destroy方法
2018年9月28日,请问一下video的事件未销毁问题解决了吗?
2018年4月12日,官方还没有解决这个问题~~!!
this.createIntersectionObserver();在自定义组件里面,调用多次后也会报这个异常
2018年3月1日,官方还没有解决这个问题~~!!
2018年1月11日,官方还没有解决这个问题~~!!
还好还没用video = =b
贴条:createVideoContext调用9次也会有这个问题,而且createVideoContext还没有destroy方法。