Показать сообщение отдельно
Старый 24.04.2015, 10:15
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 3  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Цитата:
ещё вопрос, как поминаю, одним аиром не обойтись, если я хочу записывать видео?
Да, понадобится еще какой-нибудь сервер(можно на локалхосте).Например этот
Устанавливаешь, запускаешь. Вот код "шпионской " флэшки.
Код 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);


Последний раз редактировалось undefined; 24.04.2015 в 10:59.