+1
wx.createInnerAudioContext r.connect is not a fun?客户端版本:8.0.45 基础库版本:3.3.2 系统类型:ios 使用wx.createInnerAudioContext, onError返回{"type": "error", "errMsg": "r.connect is not a function. (In 'r.connect(l)', 'r.connect' is undefined)"}
01-19最终方法:想要实现onceError,可在onError时,调用player.destroy()即可。 另外 player.src 赋值要在player.onError(onError)注册事件之后(防止player.src = 123 这种无效src也会走onError,不会等到play方法调用)。 以下展示关键代码,项目中我基于以下方式,使用了promise进行了二次封装: const player = wx.createInnerAudioContext(); player.playAudio = (src) => { function onError(err) { console.debug('onerr: ', err); player.offError(onError); player.offStop(onStop); player.offEnded(onEnded); player.destroy(); } function onStop() { player.offError(onError); player.offStop(onStop); player.offEnded(onEnded); } function onEnded() { player.offError(onError); player.offStop(onStop); player.offEnded(onEnded); } player.onError(onError); player.onStop(onStop); player.onEnded(onEnded); player.src = src; player.play(); }
小程序InnerAudioContext对象offError方法无法在onError处理函数中使用复现步骤:多次点击页面其中一个按钮 期望表现:每次点击时触发onError,并在onError内通过player.offError取消onError。实现“onceError”效果,即一次性事件监听。并且能够正确的计算错误次数。(进一步:能够基于Promise异步封装、复杂逻辑等,希望基于此特性实现。) 错误截图: [图片] 页面及代码截图: [图片][图片]
2023-09-26