xiangyuecn / Recorder

html5 js 录音 mp3 wav ogg webm amr g711a g711u 格式,支持pc和Android、iOS部分浏览器、Hybrid App(提供Android iOS App源码)、微信,提供ASR语音识别转文字 H5版语音通话聊天示例 DTMF编码解码
https://xiangyuecn.github.io/Recorder/
MIT License
4.8k stars 1.03k forks source link

使用webpack-obfuscator混淆后无法录音 #188

Open getcenter opened 1 year ago

getcenter commented 1 year ago

react 里面用的这个录音库,不混淆一切正常,混淆之后 找不到函数,查找发现是 stop里面两个函数名显示未定义,其实写的有,是this.recsuccess和this.recfail,不混淆都能找到,正常运行,混淆之后找不到这两个函数就报错了,怀疑stop的回调机制里面函数调用的问题。 不混淆之前,这两个回调函数里没有this,我用了bind才行,因为拿到blob后我需要操作state,没this不行,stop方法是否可以改成promise,返回blob,因为代码有混淆需求,实在无法解决,最终放弃使用这个库,非常遗憾,库很好非常想用,但是不能混淆

xiangyuecn commented 1 year ago

可以把插件代码丢到 public static 之类的目录,通过原始的script来引入,不参与压缩混淆,在出现疑难杂症的时候,原始方法最为有效。

xiangyuecn commented 1 year ago

关于this,完全可以在函数外部定义一个变量存起来,Recorder里面常见的是 This=this,用 that=this 也是常见做法。

看你对this的描述,我不清楚是Recorder混淆后内部代码有问题,还是你写的调用代码混淆后有问题😂