2011-03-09 66 views
0

任何熟悉使用Cirrus的人員? (http://labs.adobe.com/technologies/cirrus/)我最難讓onPeerConnect對象以它應該的方式工作。我只需要能夠將nearID的一邊拿到另一邊。然後當附近試圖連接到遠端時,遠端應該返回true並允許連接,然後同時用farID = subscriber.farID;(它工作,我證實它獲得了farID)自己獲取連接的farID,但是當我嘗試這段代碼只是看到它得到垃圾郵件與....onPeerConnect與adobe cirrus無法正常工作

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 

一遍又一遍又一遍地

那麼如何我能得到這個工作,所以,就像我說的只有1側需要提供與其他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); 

       } 

回答

0

你不檢查,如果你在onPeerconnect extist建立新的輸入流。您應該只啓動新的傳入流,當不存在時。 這就是它重複自我的原因。