{"repo": "aaaa-zhen/snapvocal", "files": {"script.js": {"142b0d3bdbd1733a65d9fb4033333ebf55f07a50": {"t": 1785769002.0630574, "n": 13439, "h": "464a7aa0f15eb881", "c": "// DOM Elements\nconst takePhotoButton = document.getElementById('takePhotoButton');\nconst cameraFeed = document.getElementById('cameraFeed');\nconst snapshotCanvas = document.getElementById('snapshotCanvas');\nconst resultDiv = document.getElementById('result');\n\n// Global variables\nlet currentWord = null;\nlet currentImage = null;\nlet stream = null;\n\n// ------- Camera Functions --------\nasync function startCamera() {\n try {\n // Stop any existing stream\n if (stream) {\n stream.getTracks().forEach(track => track.stop());\n }\n \n // Request camera access\n stream = await navigator.mediaDevices.getUserMedia({ \n video: { \n facingMode: \"environment\" // Prefer back camera\n } \n });\n \n // Set video source and enable button\n cameraFeed.srcObject = stream;\n takePhotoButton.disabled = false;\n \n // Reset UI\n resultDiv.style.display = 'none';\n } catch (err) {\n console.error(\"Error accessing camera:\", err);\n document.getElementById('cameraContainer').innerHTML = `\n
Please ensure camera permissions are granted for this site.
\nStart taking photos to build your vocabulary!
\n