adobe air,检测何时拔下网络摄像头?

时间:2011-07-30 22:13:06

标签: air actionscript-3

我试图检查活动,fps,状态。当在as3 / air中拔下活动摄像头时,不会触发任何内容。有没有人找到工作方式?在我的情况下,我有一个运行空气2.7的自助服务终端运行两个摄像头。在某些情况下,usb网络摄像头可能会被拔掉并重新插入。我一直在尝试找到一种方法来检测它的拔出时间,以便我可以重新启动它。想法?

1 个答案:

答案 0 :(得分:0)

不幸的是我没有USB相机来测试这个(只有洞察力)。

您可以尝试使用ActivityEvent并将motionlevel设置为某个较低的值。

如果在相机中检测到动作,ActivityEvent将为您提供响应。我相信当相机物理断开时,活动事件应该触发,因为不会检测到任何活动。

这是一个例子:

import flash.media.Camera;
import flash.display.Stage;
import flash.media.Video;
import flash.events.ActivityEvent;
import flash.events.StatusEvent;

var camera:Camera = Camera.getCamera();
camera.setMode(stage.stageWidth, stage.stageHeight,25);
camera.addEventListener(ActivityEvent.ACTIVITY, activityEventHandler,false,0,true);
camera.setMotionLevel(3);
var video:Video = new Video();
video.width = stage.stageWidth;
video.height = stage.stageHeight;
video.attachCamera(camera);

addChild(video);



function activityEventHandler(a:ActivityEvent):void{
    trace('Motion detected: '+a.activating);
}

注意: setMotionlevel默认值为50,因此如果将其设置为eg。 3然后相机仍然注意到一些小的变化,甚至眨眼。这将有助于您检测是否存在任何类型的运动。如果没有检测到动作,那么相机可能已经死了。

你甚至可以将运动级别用作1,但这个值非常灵敏,房间闪电中的最轻微变化可能被检测为运动。

如果有帮助,请告诉我,在使用真正的USB相机实践中听到这一点会很有趣。