Цитата:
|
ещё вопрос, как поминаю, одним аиром не обойтись, если я хочу записывать видео?
|
Да, понадобится еще какой-нибудь сервер(можно на локалхосте).Например
этот
Устанавливаешь, запускаешь. Вот код "шпионской " флэшки.

Код AS3:
import flash.media.*;
import flash.net.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.ActivityEvent;
var mic:Microphone = Microphone.getMicrophone();
var cam:Camera = Camera.getCamera();
cam.setMotionLevel(25,5000);
cam.setMode(320,240,30,false);
cam.addEventListener(ActivityEvent.ACTIVITY,hMotion,false,0,true);
//mic.setLoopBack(true);
var nc:NetConnection = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, hNS,false,0,true);
var ns:NetStream;
//reconnect();
var video:Video=new Video(stage.stageWidth,stage.stageHeight);
addChild(video);
addChild(log_tf);
log_tf.text="";
video.attachCamera(cam);
function hMotion(e:ActivityEvent):void {
if (e.activating) {
log("camera on");
if (!nc.connected)
reconnect();
} else {
log("camera off");
if (nc.connected) nc.close();
}
}
function reconnect():void {
if (nc.connected) nc.close();
nc.connect("rtmp://127.0.0.1");
}
function hNS(e:NetStatusEvent):void{
log(e.info.code);
switch(e.info.code){
case "NetConnection.Connect.Success":
hConnect();
break;
case "NetConnection.Connect.Closed":
break;
}
}
function hConnect():void {
ns=new NetStream(nc);
// add a listener so we know when our stuff is ready for recording
ns.addEventListener(NetStatusEvent.NET_STATUS, hNS,false,0,true);
ns.client={onMetaData:function(e) {trace("metadata:",e);trace(ns.bufferTime);}};
ns.attachAudio(mic);
ns.attachCamera(cam);
var date:Date=new Date();
var h=date.getHours();
var m=date.getMinutes();
var s=date.getSeconds();
var d=date.getDay();
var mo=date.getMonth();
if (h<10) h="0"+h;
if (m<10) m="0"+m;
if (s<10) s="0"+s;
if (d<10) d="0"+d;
if (mo<10) mo="0"+mo;
ns.publish(h+"-"+m+"-"+s+"_"+d+"_"+mo+"_"+date.getFullYear(), 'record');
}
function log(s:String):void {
log_tf.appendText(((log_tf.text.length==0)?"":"\n")+s);
log_tf.scrollV=log_tf.numLines;
}
log_tf - обычное текстовое поле для логирования (должно уже лежать на сцене).Ну и red5 должен уже стоять на локалхосте.
Флэшка ждет пока вебка не заметит движение.Как заметила - начинается запись. Готовые flv складываются в папочки с соответствующими датами где-то внутри red5
upd:Чувствительность камеры выставляется тут

Код AS3:
cam.setMotionLevel(25,5000);