2014-12-05 8 views
1
import flash.display.MovieClip; 
import flash.net.NetConnection; 
import flash.events.NetStatusEvent; 
import flash.media.Camera; 
import flash.events.MouseEvent; 
import flash.net.NetStream; 
import flash.media.Microphone; 
import flash.utils.ByteArray; 



    const SERVER_ADDRESS:String = "rtmfp://p2p.rtmfp.net/";   
    const DEVELOPER_KEY:String = "key";     

     var conn:NetConnection;   
     var streamOut:NetStream;   
     var streamIn:NetStream;   
     var myPeerID:String;   
     var farID:String;    

     function connect(){ 
      clearInterval(myInterval); 
      conn = new NetConnection();    
      conn.addEventListener(NetStatusEvent.NET_STATUS,netStatus);    
      conn.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncErr); 
      conn.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
      conn.connect(SERVER_ADDRESS+DEVELOPER_KEY); 
     } 

     function asyncErr(event:AsyncErrorEvent){ 
      trace("esyncerror:"+event); 
      } 

     function securityErrorHandler(event:SecurityErrorEvent):void { 
      trace("securityErrorHandler: " + event); 
     }  

     function initOutStream():void{ 
      trace("initOutStream\n"); 
      streamOut = new NetStream(conn,NetStream.DIRECT_CONNECTIONS); 
      streamOut.addEventListener(NetStatusEvent.NET_STATUS,netStatus); 
      streamOut.publish("media"); 

      var cam:Camera = Camera.getCamera(); 
      camOut.attachCamera(cam); 
      streamOut.attachCamera(cam); 
      streamOut.attachAudio(Microphone.getMicrophone()); 

      var streamOutClient:Object = new Object(); 
      streamOutClient.onPeerConnect = function(farStream:NetStream):Boolean{    
      initInStream(farStream.farID); 
      return true;   
      } 

     } 
     function pal(event:MouseEvent):void{ 
      initInStream(farID); 
      } 

     function initInStream(farID:String):void{ 
      trace("initInStream: "); 
      streamIn = new NetStream(conn,farID); 
      streamIn.addEventListener(NetStatusEvent.NET_STATUS,netStatus); 
      streamIn.play("media"); 
      streamIn.client = this; 
      camIn.attachNetStream(streamIn); 

     } 


     //netstatus function 
      function netStatus(event:NetStatusEvent):void{ 
      trace(event.info.code); 

      switch(event.info.code){ 
       case "NetConnection.Connect.Success": 
        myPeerID = conn.nearID; 
        txtMyPeerID.text = myPeerID; 
        send_peer(); 
        initOutStream(); 
        break; 

       case "NetStream.Connect.Success": 

        break; 

       case "NetStream.Connect.Closed": 
        conn.close(); remove_status(); streamOut.close(); 
        camOut.attachCamera(null); 
        gotoAndStop(4); 
        break; 

       case "NetStream.Play.Start": 
        if(farID == null){ 
        trace('play start:'+event.target.peerStreams[0].farID); 
        txtFarPeerID.text = event.target.peerStreams[0].farID; 
        farID = event.target.peerStreams[0].farID;} 
        break; 
        } 

      } 

     //sending mypeedid and call_to_id 

     function send_peer(){ 

      if(call_to_id){ 

      var urlreq = new URLRequest("http://somescript.php"); 
      urlreq.method = URLRequestMethod.POST; 

      var urlvars = new URLVariables(); 
      urlvars.call_to = call_to_id; 
      urlvars.peerid = myPeerID; 
      urlreq.data = urlvars; 

      var loader:URLLoader = new URLLoader(urlreq); 
      loader.addEventListener(Event.COMPLETE, confirm); 
      loader.dataFormat = URLLoaderDataFormat.VARIABLES; 
      loader.load(urlreq); 
      } 

      } 

     function confirm(event:Event){ 

       trace(event.target.data.s); 

       } 


     function remove_status(){ 

      farID = null; 

      var urlreq = new URLRequest("http://some_script.php"); 
      urlreq.method = URLRequestMethod.POST; 

      var urlvars = new URLVariables(); 
      urlvars.remove_my = idd; 
      urlvars.remove_to = call_to_id; 
      urlreq.data = urlvars; 

      var loader:URLLoader = new URLLoader(urlreq); 
      loader.addEventListener(Event.COMPLETE, remove_complete); 
      loader.dataFormat = URLLoaderDataFormat.VARIABLES; 
      loader.load(urlreq); 

      }    

     function remove_complete(event:Event){ 
      trace(event.target.data.aa); 
      }  

     // eventhandler for buttons 


     init.addEventListener(MouseEvent.CLICK,pal);  

     end_call.addEventListener(MouseEvent.CLICK,call_end); 

     function call_end(event:MouseEvent){ 
      conn.close(); remove_status(); 
      //streamOut.close(); 
      camOut.attachCamera(null); 
      gotoAndStop(4); 
      } 

오류 ::오류 # 1069 : 부동산 startTransmit은 flash.net.NetStream의 발견 및 기본값을

1) 오류 # 1069가 없습니다 : 부동산 startTransmit가 flash.net.NetStream의를 찾을 수 없습니다 및 기본값은 없습니다.

2) 오류 # 2044 : 처리되지 않은 AsyncErrorEvent :. text = 오류 # 2095 : flash.net.NetStream이 콜백 startTransmit을 호출 할 수 없습니다. error = ReferenceError : 오류 # 1069 : flash.net.NetStream에서 startTransmit 속성을 찾을 수 없으며 기본값이 없습니다.

사람이 전화를 걸려는 사람에게 데이터베이스에있는 neerid를 보내면 다른 사람이 그 neerid와 initInStream (farID : 문자열)을받습니다. 기능이 시작되면 스트림 및 스트림이 시작됩니다. 내가 전화를 걸고있는 사람에게 전화를 걸지 만, 전화를받을 때 수신을 클릭하면 전화가 걸려 오는 사람에게 오류가 발생합니다.

답변

1

나는 Adobe Labs : Cirrus Sample Application에 관해서 이야기한다고 생각합니다. 당신이 당신의 NetConnection했던 그래서, 당신의 첫 번째 오류를 들어, 당신이보고 here를 취할 수 있으며, 1 초 동안, 당신은 당신의 NetStream에 대한 AsyncErrorEvent 리스너를 추가 할 수 있습니다

ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, function(e:AsyncErrorEvent){ 

    ... 

}) 
+0

그것은 바탕 화면에 근무하지만 작업하지 안드로이드 .. 왜 그런 생각이 .. .. – shefali

+0

@shefali 당신은 전체 애플 리케이션이나 특정 지점에 대해 말하고 있습니까? – akmozo