function initWebcam(videoId) { const video = document.getElementById(videoId); navigator.mediaDevices.getUserMedia({ video: true }).then(stream => { video.srcObject = stream; }); } function captureFrame(frameArray, single = false) { return new Promise((resolve) => { const video = document.getElementById('video'); const canvas = document.createElement('canvas'); canvas.width = video.videoWidth; canvas.height = video.videoHeight; const ctx = canvas.getContext('2d'); ctx.drawImage(video, 0, 0); const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); const isEmpty = !imageData.data.some(channel => channel !== 0); if (!isEmpty) { const image = canvas.toDataURL('image/jpeg'); if (!single) frameArray.push(image); resolve(image); } else resolve(null); }); }