Я использую следующий код (приведенный ниже). Этот код генерирует BASE64 закодированные данные изображения, которые помогают мне показать эти данные на IMG-теге на HTML5.
" Webcam.on " - это EventListener, который срабатывает, когда видео работает в прямом эфире.
Я использую « function loop () », чтобы я мог генерировать непрерывный поток данных, закодированных в BASE64 , чтобы я мог отправить их на сервер.
Я столкнулся с проблемой, заключающейся в том, что этот цикл постоянно потребляет клиентскую оперативную память, и сборка мусора не происходит на стороне JavaScript Engine.
Я хочу знать любой альтернативный способ непрерывной генерации закодированных данных BASE64 без какого-либо высокого потребления ОЗУ.
var Draw_img = document.getElementById('IMG_TAG');
Webcam.set({
width: 320,
height: 240,
image_format: 'jpeg',
jpeg_quality: 90
});
Webcam.attach('#my_camera');
Webcam.on('live', function() {
(function loop() {
Webcam.snap(function(data_uri) {
Draw_img.src = data_uri;
document.getElementById('results').innerHTML =
'<img src="' + data_uri + '" />';
});
setTimeout(loop, 1000 / FPS);
})();
}