通过 ReactJS 中的 .getUserMedia 访问网络摄像头后点击断开网络摄像头
Disconnect webcam on click after accessing it through .getUserMedia in ReactJS
我在单击按钮时通过 navigator.mediaDevices.getUserMedia
获取网络摄像头,并通过 createRef API 将其传递给 <video />
。如果打开,我需要在同一个按钮上关闭(而不是暂停)Feed。
我试过访问像
这样的媒体曲目
.getUserMedia({ video: true, audio: false })
.then(stream =>
(this.video.current.srcObject = stream.getTracks()[0].stop))
尝试阻止他们,但没有运气。
我通过这个函数处理流 on/off:
handleClick = () => {
// accessing webcam feed
if (!this.state.rec) {
navigator.mediaDevices
.getUserMedia({ video: true, audio: true })
.then(stream => (this.video.current.srcObject = stream))
} else {
// TODO disconnect webcam feed
}
};
我希望有一个功能,可以在点击网络摄像头时断开连接(如果它是实时的)。
停止轨道是解决方案,但实际上您需要调用该方法。您还应该在所有轨道上调用它,即使您只期望一个轨道,以防万一您的约束没有完全满足。
stream.getTracks().forEach((track) => {
track.stop();
});
我在单击按钮时通过 navigator.mediaDevices.getUserMedia
获取网络摄像头,并通过 createRef API 将其传递给 <video />
。如果打开,我需要在同一个按钮上关闭(而不是暂停)Feed。
我试过访问像
这样的媒体曲目.getUserMedia({ video: true, audio: false })
.then(stream =>
(this.video.current.srcObject = stream.getTracks()[0].stop))
尝试阻止他们,但没有运气。
我通过这个函数处理流 on/off:
handleClick = () => {
// accessing webcam feed
if (!this.state.rec) {
navigator.mediaDevices
.getUserMedia({ video: true, audio: true })
.then(stream => (this.video.current.srcObject = stream))
} else {
// TODO disconnect webcam feed
}
};
我希望有一个功能,可以在点击网络摄像头时断开连接(如果它是实时的)。
停止轨道是解决方案,但实际上您需要调用该方法。您还应该在所有轨道上调用它,即使您只期望一个轨道,以防万一您的约束没有完全满足。
stream.getTracks().forEach((track) => {
track.stop();
});