onPeerConnect не работает должным образом с Adobe Cirrus

Кто-нибудь знаком с использованием Cirrus? (http://labs.adobe.com/technologies/cirrus/) Мне труднее всего заставить объект onPeerConnect работать так, как должен. Мне просто нужно иметь возможность взять 1 сторону nearID и передать ее другой. и затем, когда ближний пытается подключиться к дальнему, дальний должен вернуть true и разрешить соединение, а затем одновременно захватить подключающийся farID с farID = subscriber.farID; (который работает, я подтвердил, что он получает farID), но когда я пытаюсь этот код, он просто видит, что он получает спам....

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);

                }

2 ответа

Вы не проверяете, существует ли новый входящий поток, настроенный вами в onPeerconnect. Вы должны инициировать новый входящий поток только тогда, когда он не существует. Вот почему это повторяется.

Другие вопросы по тегам