5

我在我正在开发的网站中使用这个 jQuery 网络摄像头插件。如果您访问该网站,您会注意到它使用 Flash,您必须单击“接受”才能使其正常工作。

我想确定网络摄像头是否处于活动状态(打开)。如何使用 javascript/jquery 执行此操作?

换句话说,我在这里的 if 语句中替换了什么?

function capture_image(){
    if(webcam.muted == true) {alert("hey");}

我远不是 javascript 和 jquery 的专业人士,所以非常感谢真正的代码。

此外,如果有人能告诉我如何捕捉网络摄像头被激活的事件,我将不胜感激。如果您无法弄清楚,请不要担心。

4

5 回答 5

4

将以下功能添加到debug网络摄像头的选项中。

$("#camera").webcam({
    width: 320,
    // other options etc.
    debug: function(type, message) { 
        if (message === "Camera started") { window.webcam.started = true; } 
    }
});

我们无法测试不活动是否为真(即muted === true),但现在我们可以测试是否webcam.startedtrueundefined/ false

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");
};
于 2012-05-23T15:21:20.160 回答
0

您可以使用该方法.getCameraList()获取所有可用的相机。

onLoad 一旦接口注册完成,就会调用 onLoad 回调。在上面的示例中,我使用回调来获取所有可用摄像机的列表:

onLoad: function() {
    var cams = webcam.getCameraList();
    for(var i in cams) {
        jQuery("#cams").append("<li>" + cams[i] + "</li>");
    } 
}
于 2012-05-17T07:22:29.917 回答
0

我认为您需要使用ExternalInterface API来告诉您页面上的 JavaScript 何时同意隐私设置。

但是我不知道你是否能够得到你想要的“图像信息”,因为 flash 可以控制相机,所以 JavaScript 只能通过 ExternalInterface 告诉 flash 去“捕获”和图像,你在页面上的 javascript 可以对其进行任何操作之前,可能必须使用 flash (ActionScript) 将图像数据发送到 Web 服务。

HTML5 有一个<input type="file" accept="image/*" capture="camera" id="capture">可能就足够了,而不是 flash 实现。

于 2012-05-22T07:01:26.150 回答
0

不确定所有这些插件等。这对我有用,尽管我们仍在测试:

webcamActive = false;
webcamActive = $("#video").attr('src');
于 2014-06-03T14:29:25.827 回答
0

如果有人在这里找到检测网络摄像头何时加载的解决方案并且他正在使用webcam.js,那么这里是检测网络摄像头何时加载的方法:

Webcam.on( 'live', function() {
    // camera is live, showing preview image
    // (and user has allowed access)
} );
于 2020-04-26T15:46:36.097 回答