From ddb3c4743c0653ce5ab2160ff9323baac62b59a1 Mon Sep 17 00:00:00 2001 From: shijing Date: Mon, 24 Mar 2025 16:58:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=B9=B3=E6=9D=BF=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E6=91=84=E5=83=8F=E5=A4=B4=E6=96=B9=E6=B3=95=E5=8F=98=E5=8A=A8?= =?UTF-8?q?=EF=BC=88=E5=85=88=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E6=94=AF?= =?UTF-8?q?=E6=8C=81getUserMedia()=20API=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/wpm_bx/QRCodeScanner.vue | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/views/wpm_bx/QRCodeScanner.vue b/src/views/wpm_bx/QRCodeScanner.vue index a9d6df4b..1aed8b60 100644 --- a/src/views/wpm_bx/QRCodeScanner.vue +++ b/src/views/wpm_bx/QRCodeScanner.vue @@ -28,10 +28,10 @@ export default { methods: { // 启动摄像头并开始扫描 async startScanning() { - try { - alert("启动摄像头"); - // 请求用户的摄像头权限并获取视频流 - const stream = await navigator.mediaDevices.getUserMedia({ + if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){ + alert("摄像头可用"); + // 请求用户的摄像头权限并获取视频流 + const stream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: 'environment' }, // 使用后置摄像头 }); @@ -41,9 +41,25 @@ export default { setTimeout(() => { this.scanQRCode(); },1000) - } catch (error) { - console.error('无法访问摄像头:', error); + }else{ + alert("摄像头不可用:浏览器不支持getUserMedia"); } + // try { + // alert("启动摄像头"); + // // 请求用户的摄像头权限并获取视频流 + // const stream = await navigator.mediaDevices.getUserMedia({ + // video: { facingMode: 'environment' }, // 使用后置摄像头 + // }); + + // this.videoStream = stream; + // this.$refs.videoElement.srcObject = stream; + // alert("准备就绪"); + // setTimeout(() => { + // this.scanQRCode(); + // },1000) + // } catch (error) { + // console.error('无法访问摄像头:', error); + // } }, // 从视频流中提取每一帧图像并识别二维码