上下文
我正在为浏览器创建条形码阅读器/平地机,图像比较和光学字符识别套件。我有一个USB摄像头流视频,目前只改变每个像素的蓝色值并绘制到画布上。 (也使用adapter.js)
问题
在Chrome 47中大约2分钟后,标签崩溃了" Aww,snap"错误信息。
修改
经过进一步测试,我发现最近的Firefox中没有这个问题。网络摄像头在Firefox上使用相同的代码无限期地无限运行。这会让我相信这是Chrome中的实施错误。 (或adapter.js)
代码
<video id="vid" autoplay="true"></video>
var video = document.getElementById("vid");
var frame = 0, data = 0;
function loop() {
window.requestAnimationFrame(loop);
context.drawImage(video, 0, 0, 640, 480);
frame = context.getImageData(0, 0, 640, 480);
data = frame.data;
for(var i = 0; i < data.length; i+=4) {
data[i+0] -= 0;
data[i+1] -= 0;
data[i+2] -= 150;
data[i+3] -= 0;
}
context.putImageData(frame, 0, 0);
}
loop();
问题
我想知道,我在代码中出现了一些明显的错误吗?我似乎无法使用Chrome内置工具发现任何内存泄漏。
这是Chrome的实施错误吗?问题感觉就像它试图关闭视频流一样(不正确),但我似乎无法确定这种情况。
非常感谢任何帮助。