我有一个动态创建的html5相机视频弹出窗口,工作正常。问题是如果我在没有回答Chrome摄像头许可请求栏的情况下取消它,它会破坏html罚款,但是许可栏会保留。相机停止并且指示灯熄灭但仅刷新页面将终止许可栏。
var webcam=function()
{
var cam=document.createElement("canvas"),vid=document.createElement("video"),S=null;
vid.autoplay=true;
cam.width=640;
cam.height=480;
navigator.getUserMedia({video: {optional: [{minWidth:640},{minWidth:480},{minWidth:360}]}},function(stream){vid.src=(window.URL||window.mozURL||window.webkitURL).createObjectURL(stream);S=stream},function(error){console.log("error")});
webcam.stop=function(){if(S)S.stop();vid.src=""};
var dv=document.createElement("div");
dv.appendChild(vid);
return dv;
}
如果我通过运行 webcam.stop 取消它并删除相关的html,则会关闭相机并删除视频。如果我已经回答了浏览器权限请求,则工作正常。但是在chrome中,权限请求一直持续到页面刷新。
有没有办法以编程方式删除浏览器权限栏或取消它?例如,在Firefox中,当视频执行时,权限请求会消失。
UPDATE 创建了一个jsfiddle来说明问题。 http://jsfiddle.net/CM5Tk/7/