我试图用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);
} …Run Code Online (Sandbox Code Playgroud) 我正在构建一个包含视频记录列表的网页。单击每个视频记录会在同一页面上打开一个模式对话框,其中包含记录的详细信息和 HTML5 视频播放器。
用户可以根据需要多次打开一个视频、关闭它,然后打开另一个视频。然而,特别是在 Chome 上,在 3-5 个视频之后,浏览器开始挂起超过两分钟,同时显示一条消息“等待套接字”。
经过一些阅读,我将其范围缩小到 Chrome 无法打开到同一主机的超过 6 个连接。
我处理媒体播放器的方式肯定做错了。我相信即使播放器的 html 已从 dom 中删除,套接字仍对媒体开放一段时间。
使用:Bootstrap、MediaElement.js、HTML5 视频、MVC、返回 FilePathResult 的“范围请求”的控制器
// Handling Bootstrap Modal Window Close Event
// Trigger player destroy
$("#xr-interaction-detail-modal").on("hidden.bs.modal", function () {
var player = xr.ui.mediaelement.xrPlayer();
if (player) {
player.pause();
player.remove();
}
});
Run Code Online (Sandbox Code Playgroud)