多个OfflineAudioContext浏览器崩溃
multiple OfflineAudioContext crashing browser
我有一个大约60个音频文件的数组(每个大约3分钟)。我循环浏览这个数组-对于每个项目,我都创建一个OfflineAudioContext,然后进行一些过滤和处理,如下所示:
var request = new XMLHttpRequest();
request.open('GET', audioFile.source, true);
request.responseType = "arraybuffer";
request.onload = function(){
context.decodeAudioData(request.response, function(buffer) {
audioFileBuffer = buffer;
offlineContext = new OfflineAudioContext(1, buffer.length, buffer.sampleRate);
//do some processing
//do some checks
}
}
即使没有任何处理或"检查",这也会导致浏览器在30左右崩溃。我试着慢慢地浏览数组(每个项目都点击按钮),但浏览器仍然会在这个阈值附近崩溃。
在处理&检查是否完成offlineContext,并且不再需要用于创建它的任何东西——这是否仍在占用内存并导致浏览器崩溃?
编辑:更改代码以测试更具体的区域,并且离线音频上下文似乎只会崩溃chrome,下面的测试将完成opera、ff&萨法里,但将崩溃约170铬。
for(i=0; i<1000; i++){
var off = new webkitOfflineAudioContext(1, 1764000, 44100);
console.log(i);
}
Chrome给出错误:"Uncaught NotSupportedError:未能构造'OfflineAudioContext':OfflineAudioContext(176400044100)",然后如果刷新页面,则会崩溃
如果看不到周围的所有代码,我就无法判断。你能删除decodeAudioData调用,只创建30多个给定长度的OfflineAudioContext,看看它是否有同样的问题吗?(即不要加载缓冲区)。
OfflineAudioContext
在我的页面崩溃时,意外创建了一个24倍长的页面。
我认为,如果你创建了太多,或者创建了一个太长的,它会立即崩溃,因为它没有足够的内存。
试着收集垃圾,或者一次一个地按顺序收集。
相关文章:
- location.reload(true)崩溃浏览器选项卡
- 为什么这个For循环会使浏览器实验室崩溃
- 脸书's的inApp浏览器在尝试上传表单中的照片时崩溃
- 为什么这会造成一个无休止的循环并使我的浏览器崩溃
- jQuery文件上传崩溃的浏览器
- javascript audio currentTime使一些浏览器崩溃
- 在浏览器崩溃之前检测到内存耗尽
- 浏览器11上的Javascript location.href崩溃
- Javascript游戏与循环崩溃浏览器
- 输入输入前浏览器崩溃
- 写得不好的jQuery正在崩溃浏览器
- Ajax 自动完成冻结/崩溃浏览器
- 简单Greasemonkey脚本崩溃浏览器
- 重构jQuery以淡出并阻止其崩溃浏览器
- 为什么这个崩溃浏览器选项卡
- Javascript和细分,在for循环中崩溃浏览器
- 桌面图像拖放上传崩溃浏览器
- 可处理的更新单元格崩溃浏览器
- 简单的页面崩溃浏览器
- ASP.NET 中的角崩溃浏览器