tracking.js没有提供关闭摄像头的方法只能刷新浏览器或者关闭浏览器来关闭摄像头。
直接上解决办法:
在tracking.js文件中找到以下方法
```javascript
tracking.initUserMedia_ = function (element, opt_options) {
window.navigator.mediaDevices.getUserMedia({
video: true,
audio: (opt_options && opt_options.audio) ? true : false,
}).then(function (stream) {
element.srcObject = stream;
//加上这一句话
window.stream = stream;
}).catch(function (err) {
throw Error('Cannot capture user camera.');
});
};
```
vue中定义关闭的方法:
```javascript
stopMediaStreamTrack() {
if (typeof window.stream === "object") {
// this.videoEl是视频流容器,也就是video标签,需要在data中声明这个变量,然后在打开摄像头的方法中this.videoEl.srcObject = window.stream
this.videoEl.srcObject = null;
window.stream.getTracks().forEach(track => track.stop());
}
},
```
实测在vue中调用这个方法是可以关闭摄像头的,chrome闪烁小红点消失,电脑摄像头指示灯熄灭。有问题欢迎留言指出,调用摄像头的代码网上很多就不贴了