首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular5 Instascan -打开相机不工作<video>

Angular5 Instascan -打开相机不工作<video>
EN

Stack Overflow用户
提问于 2018-01-12 06:36:23
回答 1查看 1.2K关注 0票数 0

Angular5 - Instascan -显示摄像机视图(视频标签)不工作。但我的相机开着。

app.component.ts

代码语言:javascript
复制
constructor(){    
this.Instascan= require('instascan'); 

let scanner = new this.Instascan.Scanner({ video: document.getElementById("preview") });

scanner.addListener('scan', function (content) {
  console.log(content);
});
this.Instascan.Camera.getCameras().then(function (cameras) {
  if (cameras.length > 0) {
    scanner.start(cameras[0]);
  } else {
    console.error('No cameras found.');
  }
}).catch(function (e) {
  console.error(e);
});
}

app.component.html

代码语言:javascript
复制
<video id="preview"></video>

Instascan -- https://github.com/schmich/instascan

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-12 10:09:38

代码语言:javascript
复制
let scanner = new this.Instascan.Scanner({ video: document.getElementById("preview") });

问题是,当视图尚未初始化时,您将在构造函数中执行上述代码。document.getElementById("preview")将返回null,因为此时没有找到任何元素。因此,您试图使用的东西从未正确初始化。

您应该在角的AfterViewInit钩子中运行该代码。另外,您应该使用ViewChild装饰器来获取ElementRef,而不是使用document。像您在这里所做的那样访问DOM是违反良好实践的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48220807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档