我正在尝试使用 javascript 函数关闭网络摄像头(它必须在收到一些 Ajax 响应后关闭),但如果不刷新页面似乎无法关闭。关闭它的所有方法,如 video.src = null、video.pause...等,在任何浏览器中都不起作用。唯一的方法是关闭作为参数传递给成功函数的流,那么有什么方法可以在函数成功之外使用这个对象来关闭网络摄像头?
我知道之前有人问过这个问题(使用 getUserMedia 和 RTCPeerConnection Chrome 25 停止/关闭网络摄像头),但我的需求不同,所以我需要一些帮助来解决这个问题
谢谢!
编辑:我的工作代码试图关闭网络摄像头:
navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia;
if(navigator.getUserMedia){
var video_constraints = {
mandatory: {
maxHeight: 480,
maxWidth: 640
},
optional: []
};
var self = this;
self.navigator.getUserMedia({
audio: false,
video: video_constraints
}, self.onSuccess, onError);
}
else{
alert('An error has occurred starting the webcam stream, please revise the instructions to fix the problem');
}
function onSuccess(stream) {
var video = document.getElementById('webcam');
if(navigator.webkitGetUserMedia || navigator.mozGetUserMedia){
video.src = window.URL.createObjectURL(stream);
}
else if(navigator.msGetUserMedia){
//future implementation over internet explorer
}
else{
video.src = stream;
}
self.localStream = stream;
video.play();
}
function onError() {
alert('There has been a problem retrieving the streams - did you allow access?');
}
function closeWebcamConnection(){
this.localStream.stop();
}
uff..在这里发布代码真的很复杂XD