Есть ли альтернатива для запуска кода после события - PullRequest
0 голосов
/ 16 июня 2019

Я использую следующий код (приведенный ниже). Этот код генерирует 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);
            })();
        }
...