К сожалению, у меня нет 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, так что если выустановите это например.3 затем камера все еще замечает некоторые небольшие изменения, даже мигает.Это поможет вам определить, есть ли какое-либо движение.Если движение не обнаружено, значит, камера, вероятно, мертва.
Возможно, вы даже можете использовать уровень движения как 1, но это значение очень чувствительное, и даже малейшее изменение освещения в помещении, вероятно, определяется как движение.
Дайте мне знать, если это поможет, было бы интересно услышать об этом на практике с настоящей USB-камерой.