Кто-нибудь знаком с использованием Cirrus?(http://labs.adobe.com/technologies/cirrus/) Мне сложнее всего заставить объект onPeerConnect работать так, как он должен. Мне просто нужно иметь возможность взять одну сторону nearID и передать ее другой. А затем, когда ближний пытается подключиться кдальний, дальний должен вернуть true и разрешить соединение, а затем одновременно захватить соединяющийся farID самостоятельно с помощью farID = subscriber.farID;
(который работает, я подтвердил, что он получает farID), но когда я пробую этот код, он просто видит, как он получаетspammed with ....
TRUE
NetStream.Play.Start
NetStream.Play.Start
NetStream.Connect.Success
NetStream.Connect.Closed
TRUE
TRUE
NetStream.Play.Start
TRUE
NetStream.Play.Start
NetStream.Play.Start
NetStream.Connect.Closed
NetStream.Connect.Success
NetStream.Connect.Closed
TRUE
TRUE
TRUE
NetStream.Play.Start
NetStream.Connect.Closed
TRUE
NetStream.Play.Start
NetStream.Connect.Closed
TRUE
NetStream.Play.Start
TRUE
NetStream.Play.Start
NetStream.Play.Start
NetStream.Connect.Closed
NetStream.Connect.Success
снова и снова и снова и снова
Так, как я могу получить эту работу так, как я сказал, только одна сторона должна быть снабжена другими farIDа потом они могут передавать аудио и видео друг другу?
Я часами переставлял код и, кроме всего прочего, играл с местоположением кода client =
, но все равно не повезло. Может кто-нибудь поделитьсяЛюбое понимание по теме?
//SETUP STREAM FUNCTION
public function setupStream():void
{
//send stream with audio and video;
sendStream = new NetStream(netConnection,NetStream.DIRECT_CONNECTIONS);
sendStream.attachAudio(live_mic);
sendStream.attachCamera(nearCam);
sendStream.addEventListener(NetStatusEvent.NET_STATUS, cirrusStatusHandler);
var c:Object = new Object;
c.onPeerConnect = function(subscriber:NetStream):Boolean {
farID = subscriber.farID;
trace("TRUE");
setupReceiveStream();
return true;
}
sendStream.client = c;
sendStream.publish("media");
}
//receive stream function
public function setupReceiveStream():void
{
receiveStream = new NetStream(netConnection, farID);
//receive stream with audio and video;
receiveStream.client = this;
receiveStream.play("media");
far_video.mx_internal::videoPlayer.attachNetStream(receiveStream);
receiveStream.addEventListener(NetStatusEvent.NET_STATUS, cirrusStatusHandler);
}