Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.04.2015, 03:42
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 1  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
По умолчанию низкое качество видео с вебки

Доброго!
Решил немного побаловаться с вебкой, набросал простенький код, что бы подключиться к вебке, но появилась проблема, аир выводит изображение в крайне паршивом качестве, реально камера может намного больше (в других приложениях, хоть тот же скайп, качество видео значительно лучше), в чём может быть проблема?

Добавлено через 3 минуты
ещё вопрос, как поминаю, одним аиром не обойтись, если я хочу записывать видео?

Добавлено через 14 минут
с первым вопросом разобрался, ответ тут ищем setMode

Старый 24.04.2015, 08:00
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
http://www.joristimmerman.be/wordpre...flv-using-air/

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

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

Регистрация: Jun 2014
Сообщений: 558
Спасибо за отзывы!
Я не очень силён в AS3, переделал код, что бы работал в FD, но вот щас столкнулся с проблемой, наверно простой
Цитата:
log_tf - обычное текстовое поле для логирования (должно уже лежать на сцене)
а в FD это как сделать? Ну я могу во флеш проф выгрузить библиотеку swc, а что нужно в эту библиотеку запихнуть? Я вон ради интереса выгрузил простой мувик с таким именем, вроде даж как-то стартует, но сразу виснет, а FD ругается на "exception, information=TypeError: Error #1006: appendText is not a function." Помогите плиз
Код AS3:
package
{
 
	import flash.display.Sprite;
	import flash.events.NetStatusEvent;
	import flash.media.*;
	import flash.net.*;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import flash.events.ActivityEvent;
 
	[SWF(width="800",height="600",frameRate="60",backgroundColor="0x1B1B1B")]
 
	public class Main extends Sprite
	{
		var mic:Microphone = Microphone.getMicrophone();
		var cam:Camera = Camera.getCamera();
		var nc:NetConnection = new NetConnection();
		var ns:NetStream;
		var log_tf:log_tf_mc = new log_tf_mc();
 
		public function Main()
		{
			cam.setMotionLevel(25, 5000);
			cam.setMode(320, 240, 30, false);
			cam.addEventListener(ActivityEvent.ACTIVITY, hMotion, false, 0, true);
 
			nc.addEventListener(NetStatusEvent.NET_STATUS, hNS, false, 0, true);
 
			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;
		}
	}
}

Старый 27.04.2015, 11:34
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 5  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,282
так ты добавляешь не само текстовое поле, а мувиклип с текстовым полем, у него естественно нет методов текстФилда.Попробуй так:
в объявлениях верни
Код AS3:
var log_tf:TextField;
И дальше в самом начале функции Main:
Код AS3:
var mc:log_tf_mc = new log_tf_mc();
log_tf=mc.getChildAt(0) as TextField;
Ток проследи чтоб внутри мувиклипа log_tf_mc тектовое поле было единственным ребенком.
Если опять не заведется - убирай нах все упоминания о log_tf и меняй функцию log на
Код AS1/AS2:
function log(s:String):void
{
trace(s);
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.