赞
踩
npm install @zxing/library -S
<template>
<video :id="vId" autoplay style="width: 100%; height: 500px;"></video>
</template>
<script> import { BrowserMultiFormatReader } from '@zxing/library'; export default { data() { return { vId: 'codeVideo', codeReader: new BrowserMultiFormatReader(), }; }, created() { this.scanCode(); }, methods: { scanCode() { this.codeReader.getVideoInputDevices().then((videoInputDevices) => { const leng = videoInputDevices.length; if (!leng) { return console.error( '找不到摄像头'); } const deviceId = videoInputDevices[leng - 1].deviceId; this.codeReader.decodeFromInputVideoDeviceContinuously(deviceId, this.vId, (result, err) => { if (result) { console.error(result.text); } if (err) { console.error(err); } }); }).catch(err => { console.error(err); }).finally(() => { this.codeReader.reset(); // 销毁扫描 }); }, }, } </script>
摄像头必须在 https 下才能获取到,在 vue.config.js 文件中添加以下代码:
module.exports = {
devServer: {
https: true, // 添加这一行代码
},
};
然后运行 npm run serve
重启项目
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。