Ошибка #1069: свойство startTransmit не найдено на flash.net.NetStream и значение по умолчанию отсутствует

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

ошибки::

1) Ошибка № 1069: свойство startTransmit не найдено на flash.net.NetStream и значение по умолчанию отсутствует.

2) Ошибка № 2044: необработанный AsyncErrorEvent:. text = Ошибка № 2095: flash.net.NetStream не смог вызвать обратный вызов startTransmit. error = ReferenceError: Ошибка #1069: свойство startTransmit не найдено на flash.net.NetStream и значение по умолчанию отсутствует.

когда человек делает вызов, я отправляю neerid в базе данных человеку, которому он хочет позвонить, другой человек получает этот neerid и initInStream(farID:String); функция инициируется, запускаются streamout и streamin. Я получаю Farid от лица, которое делает вызов, но когда я нажимаю на кнопку "Получить", чтобы начать потоковую передачу выше 2, появляется ошибка для человека, который принимает вызов

1 ответ

Я думаю, что вы говорите о Adobe Labs: Пример приложения Cirrus. Итак, для вашей первой ошибки вы можете посмотреть здесь, для второй, вы можете просто добавить AsyncErrorEvent слушатель для вашего NetStream как вы сделали со своим NetConnection:

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

    ...

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