我正在使用带有视频流输入(网络摄像头或手机摄像头)的 ZXing JS 条码扫描器库https://github.com/zxing-js/library/ ,如以下代码中所述。
一般来说,<video>
当视频流刚刚开始时,如何将事件侦听器添加到 a 以执行操作?(使用MediaDevices.getUserMedia
视频流API的视频,从ZXing的开始decodeFromInputVideoDevice
)?
const codeReader = new ZXing.BrowserQRCodeReader();
codeReader
.decodeFromInputVideoDevice(undefined, 'video') // uses the default input
.then(result => console.log(result.text)) // this happens when the barcode is found / recognized
.catch(err => console.error(err));
<script src="https://unpkg.com/@zxing/library@0.15.2/umd/index.min.js"></script>
<video id="video"></video>
注意:目前我正在使用setTimeout(..., 2000)
当用户单击按钮开始视频时,但显然如果出现对话框“您要允许该网站使用摄像头设备吗?”,则此操作失败,然后2 秒是不够的。事件“VideoHasJustStarted”的监听器会更好。
编辑:
这是一个显示问题的 jsFiddle:不使用各种事件:started
, devicechange
.