收藏
回答

AudioContext的事件挂载触发nodejs的EventEmitter上限

问题模块
API和组件

如题,当使用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,所以担心效率比较低

回答关注问题邀请回答
收藏

11 个回答

正在加载...

登录 后发表内容