我使用以下JavaScript代码打开了一个网络摄像头:
const stream = await navigator.mediaDevices.getUserMedia({ /* ... */ });
是否有任何JavaScript代码停止或关闭网络摄像头?
我使用以下JavaScript代码打开了一个网络摄像头:
const stream = await navigator.mediaDevices.getUserMedia({ /* ... */ });
是否有任何JavaScript代码停止或关闭网络摄像头?
当前回答
因为这个答案是最初发布的浏览器API已经改变了。 .stop()在传递给回调函数的流上不再可用。 开发者必须访问组成流的音轨(音频或视频)并分别停止它们。
更多信息请访问:https://developers.google.com/web/updates/2015/07/mediastream-deprecations?hl=en#stop-ended-and-active
示例(来自上面的链接):
stream.getTracks () .forEach(函数(跟踪){ track.stop (); });
浏览器支持可能有所不同。
以前,导航器。getUserMedia在成功回调中为您提供了一个流,您可以在该流上调用.stop()来停止录制(至少在Chrome中,似乎FF不喜欢它)
其他回答
下面的代码适用于我:
public vidOff() {
let stream = this.video.nativeElement.srcObject;
let tracks = stream.getTracks();
tracks.forEach(function (track) {
track.stop();
});
this.video.nativeElement.srcObject = null;
this.video.nativeElement.stop();
}
有溪流形式成功的参考吗
var streamRef;
var handleVideo = function (stream) {
streamRef = stream;
}
//this will stop video and audio both track
streamRef.getTracks().map(function (val) {
val.stop();
});
您可以直接使用成功处理程序中返回给getUserMedia的流对象来结束流。如。
localMediaStream.stop()
视频。Src =""或null只会从视频标签中删除源。它不会释放硬件。
启动和停止网络摄像头,(更新2020 React es6)
开启Web摄像头
stopWebCamera =()=>
//Start Web Came
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
//use WebCam
navigator.mediaDevices.getUserMedia({ video: true }).then(stream => {
this.localStream = stream;
this.video.srcObject = stream;
this.video.play();
});
}
}
停止网络摄像头或视频播放一般
stopVideo =()=>
{
this.video.pause();
this.video.src = "";
this.video.srcObject = null;
// As per new API stop all streams
if (this.localStream)
this.localStream.getTracks().forEach(track => track.stop());
}
停止网络摄像头功能,即使视频流:
this.video.src = this.state.videoToTest;
this.video.play();
不要使用stream.stop(),它已被弃用
MediaStream用法
使用stream.getTracks()。forEach(track => track.stop())