// script.js
const video = document.getElementById('video');
const overlay = document.getElementById('overlay');
const manualInputBtn = document.getElementById('manualInputBtn');
const flashBtn = document.getElementById('flashBtn');
const scanArea = document.querySelector('.scan-area');
let stream;
let scanning = false;
let flashEnabled = false;
// 获取摄像头权限并开始播放视频流
navigator.mediaDevices.getUserMedia({ video: { facingMode: "environment" } })
  .then(s => {
    stream = s;
    video.srcObject = stream;
    video.play();
    // 开始扫描
    scanning = true;
    requestAnimationFrame(scan);
  })
  .catch(err => {
    console.error("无法访问摄像头:", err);
  });
// 扫描二维码
function scan() {
  if (scanning) {
    const canvas = overlay.getContext('2d');
    const videoWidth = video.videoWidth;
    const videoHeight = video.videoHeight;
    // 设置画布大小
    overlay.width = videoWidth;
    overlay.height = videoHeight;
    // 将视频帧绘制到画布上
    canvas.drawImage(video, 0, 0, videoWidth, videoHeight);
    // ...获取扫描区域图像数据
    // 使用 jsQR 库解码二维码
    const code = jsQR(imageData.data, imageData.width, imageData.height);
    // 如果成功解码,则停止扫描并处理结果
    if (code) {
      scanning = false;
      handleScanResult(code.data);
    } else {
      requestAnimationFrame(scan);
    }
  }
}
// 处理扫描结果
function handleScanResult(data) {
  alert("扫描结果:" + data);
  // 这里可以根据扫描结果进行相应的操作,例如跳转到链接或显示信息
}
// 手动输入按钮点击事件
manualInputBtn.addEventListener('click', function() {
  // ...
});
// 闪光灯按钮点击事件
flashBtn.addEventListener('click', function() {
  // ...
});