JavaScript関数を使用してWebカメラを閉じようとしています(Ajax応答を受け取った後に閉じる必要があります)が、ページを更新しないと閉じることができないようです。video.src = null、video.pause...などのように閉じるためのすべてのメソッドは、どのブラウザーでもまったく機能しません。独自の方法は、success 関数のパラメーターとして渡されたストリームを閉じることです。このオブジェクトを関数 success の外で使用して Web カメラを閉じる方法はありますか?
この質問は以前に尋ねられたことを知っています ( 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();
}
うーん..ここにコードを投稿するのは本当に複雑です XD