我正在构建一个web应用程序,允许用户进化网络音频合成器(https://gensynth.ou.edu/#/evolve)。然而,在chrome上,每当你用mutation amount向上旋转几次点击刷新并在进化过程中播放时,应用程序就会意外崩溃(该选项卡只显示“aw snap”崩溃屏幕)。
当合成器加载时,它通过连接到静音增益节点的scriptProcessor和分析器节点播放,这样它就可以呈现出初始的谱图(最初尝试使用离线上下文,但刹车非常糟糕)。然后,当用户单击该乐器时,它通过一组不同的脚本/分析器节点进行播放。每次后续播放,振荡器和过滤器被重新生成并连接到这组相同的脚本/分析器节点。
当老脚本节点试图收集垃圾时,它似乎就会崩溃,因为当我尝试保持对节点的引用而不将其onaudioprocess函数设置为null时,垃圾收集发生的频率就会降低(这确实会严重影响内存)。是否有更好或更标准的方法来做到这一点?
我不完全是把什么代码放在这篇文章中,因为这个问题只出现在大多数时候,所有的事情都是在一起的。利用脚本/分析器节点的主要部件是这里。
在firefox中可以很好地工作,并让我知道是否有任何其他信息可以帮助我提供。
编辑:只在此页上隔离可视化程序代码,只需几次单击new x30按钮就可以得到崩溃(尽管频率较低)。
发布于 2015-01-30 21:17:59
更新到chrome 40之后,我还没有看到问题出现。我假设它是由内存损坏或修复的网络音频错误(http://googlechromereleases.blogspot.com/2015/01/stable-update.html)引起的。
https://stackoverflow.com/questions/26793578
复制相似问题