Показать сообщение отдельно
Старый 25.02.2012, 19:56
ashIndie вне форума Посмотреть профиль Отправить личное сообщение для ashIndie Найти все сообщения от ashIndie
  № 17  
Ответить с цитированием
ashIndie

Регистрация: Feb 2012
Сообщений: 68
Код AS3:
package  {
 
	import flash.display.MovieClip;
	import flash.net.NetConnection;
	import flash.events.NetStatusEvent;
	import flash.net.NetStream;
	import flash.media.Microphone;
	import flash.media.Camera;
	import fl.video.*;
	import flash.media.Video;
	import flash.net.NetGroup;
	import flash.net.GroupSpecifier;
 
 
	public class Main extends MovieClip {
 
		private const CIRRUS_ADDRESS:String = "rtmfp://p2p.rtmfp.net";
		private const DEVELOPER_KEY:String = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";			
		private var netConnection:NetConnection;
		private var myPeerID;
		private var farPeerID;
		//streams
		private var sendStream:NetStream;
		private var recvStream:NetStream;
		private var video:Video;
 
		public function Main() {			
			netConnection = new NetConnection();			
			// Добавляем детектор (listener) для получаения информации о статусе соединения			
			netConnection.addEventListener(NetStatusEvent.NET_STATUS, netConnectionHandler);			
			// Соединяемся со Cirrus 			
			netConnection.connect(CIRRUS_ADDRESS, DEVELOPER_KEY);
		}
 
		function netConnectionHandler(e:NetStatusEvent):void {
			switch (e.info.code) {
				case "NetConnection.Connect.Success":
					trace(e.info.code);
					myPeerID = netConnection.nearID;
					initSendStream();
					break;
			}
		}
 
		// для отправки потока данных пиру
		private function initSendStream() {
			trace("initSendStream()");
			sendStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
			sendStream.addEventListener(NetStatusEvent.NET_STATUS, netStreamHandler);
			sendStream.publish("media");
			sendStream.attachAudio(Microphone.getMicrophone());
			sendStream.attachCamera(Camera.getCamera());
 
			var sendStreamClient:Object = new Object();
			sendStreamClient.onPeerConnect = function(callers:NetStream):Boolean {
				farPeerID = callers.farID;
				trace("onPeerConnect "+farPeerID);
				return true;
			}
			sendStream.client = sendStreamClient;
		}
 
		private function initRecvStream() {
			trace("initRecvStream()");
			trace("myPerrID = ", myPeerID);
			recvStream = new NetStream(netConnection, myPeerID);
			recvStream.addEventListener(NetStatusEvent.NET_STATUS, netStreamHandler);
			recvStream.play("media");
 
			video = new Video(320, 240);
			video.attachNetStream(recvStream);
			addChild(video);
 
			recvStream.client = this;
		}
 
		function netStreamHandler(e:NetStatusEvent):void {
			trace(e.info.code);
			if (e.info.code=="NetStream.Publish.Start") {
				initRecvStream();
			}
		}
 
	}
 
}