我在我正在处理的网站中使用this jQuery webcam plugin。如果你去网站,你会注意到它使用闪存,你必须点击'接受'才能让它工作。
我想确定网络摄像头是否处于活动状态(打开)。我怎么能用javascript / jquery做到这一点?
换句话说,我在if语句中替换了什么?
function capture_image(){
if(webcam.muted == true) {alert("hey");}
我在javascript和jquery方面远非专业人士,所以我们非常感谢真正的代码。
此外,如果有人可以告诉我如何捕获网络摄像头被激活的事件,那么也将非常感激。如果你无法弄清楚,不要担心。
答案 0 :(得分:4)
将以下功能添加到网络摄像头的debug
选项中。
$("#camera").webcam({
width: 320,
// other options etc.
debug: function(type, message) {
if (message === "Camera started") { window.webcam.started = true; }
}
});
我们无法测试不活动是否为真(即muted === true
),但现在我们可以测试webcam.started
为true
或undefined
/ false
:< / p>
function capture_image(){
if( !webcam.started ) { alert("hey, camera not started"); }
}
如何捕捉活动
除了debug
事件之外,本身没有事件。你可以做一个......
首先执行以下操作:
$("#camera").webcam({
width: 320,
// other options etc.
debug: function(type, string) {
if (string === "Camera started") {
window.webcam.started = true;
if (window.webcam.onStarted) { window.webcam.onStarted(); }
}
}
});
接下来为我们的新活动webcam.onStarted
添加一个功能:
window.webcam.onStarted = function () {
alert("Whey, the webcam started");
};
答案 1 :(得分:0)
您可以使用方法.getCameraList()
让所有相机都可用。
onLoad注册后立即调用onLoad回调 界面完成了。在上面的例子中,我使用回调来获取 所有可用摄像机的列表:
onLoad: function() {
var cams = webcam.getCameraList();
for(var i in cams) {
jQuery("#cams").append("<li>" + cams[i] + "</li>");
}
}
答案 2 :(得分:0)
我认为在商定隐私设置后,您需要使用ExternalInterface API告诉您网页上的JavaScript。
但是我不知道你是否能够获得你想要的“图像信息”,因为闪存可以控制相机,因此JavaScript只能告诉闪存“捕获”并通过在ExternalInterface中,您可能必须使用flash(ActionScript)将图像数据发送到Web服务,然后页面上的javascript才能对其执行任何操作。
HTML5的<input type="file" accept="image/*" capture="camera" id="capture">
可能就足够了,而不是flash实现。
答案 3 :(得分:0)
不确定所有这些插件等。这对我有用,虽然我们仍然在测试:
webcamActive = false;
webcamActive = $("#video").attr('src');
答案 4 :(得分:0)
如果此处有人找到了检测摄像头何时加载的解决方案,而他正在使用webcam.js,则可以使用以下方法检测摄像头何时加载:
CustomAttribute