newbie: flex netstream, как получить поток кода и правильно получать netstream? - PullRequest
0 голосов
/ 22 марта 2012

У меня проблемы с тем, чтобы заставить работать мой гибкий код, ниже приведен мой код, я пытаюсь подключить веб-камеру к сети, получить ее и использовать для этого 2 функции.Любой гибкий гуру может помочь мне исправить эти функции?

            function onNetConnectionPublish():void { 
                StatusMessage("onNetConnectionPublish called");
                ncNetStream = new NetStream(nc, NetStream.DIRECT_CONNECTIONS);  
                ncNetStream.addEventListener(NetStatusEvent.NET_STATUS, sendNetStreamHandler);  
                ncNetStream.publish("media");  
                ncNetStream.attachAudio(Microphone.getMicrophone());  
                ncNetStream.attachCamera(Camera.getCamera()); 
            } 

и:

            function connectToRemote(remoteId:String) { 
                StatusMessage("connectToRemote(" + remoteId + ")"); 

                ncNetStream = new NetStream(nc, remoteId);  
                ncNetStream.addEventListener(NetStatusEvent.NET_STATUS, receiveNetStreamHandler);  
                ncNetStream.play("media");  
            } 

показать видео:

1 Ответ

1 голос
/ 22 марта 2012

Приложение издателя:

private function Publisher():void{

        var camera1:Camera = Camera.getCamera();
        var video:Video = new Video(285, 254);
        if (camera1)
        {
            video.attachCamera(camera1);
            VideoDisplay1.addChild(video);
            camera1.addEventListener(ActivityEvent.ACTIVITY, camera_activity);
            camera1.addEventListener(StatusEvent.STATUS, camera_status);
        }

        var nc:NetConnection = new NetConnection();
        nc.connect("rtmp://your/stream/url");
        nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);

        function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    var ns:NetStream = new NetStream(nc,NetStream.CONNECT_TO_FMS);
                    ns.attachCamera(camera1);
                    ns.publish("videofeed", "live");
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Unable to locate video: ");
                    break;
                    }
             }
    }

Приложение получателя:

        import mx.utils.ObjectUtil;

        private var nc:NetConnection;
        private var ns:NetStream;
        private var video:Video;
        private var meta:Object;

        private function init():void {
            var nsClient:Object = {};
            nsClient.onMetaData = ns_onMetaData;
            nsClient.onCuePoint = ns_onCuePoint;

            nc = new NetConnection();
            nc.connect(null);

            ns = new NetStream(nc);
            ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");
            ns.client = nsClient;

            video = new Video();
            video.attachNetStream(ns);
            uic.addChild(video);
        }

        private function ns_onMetaData(item:Object):void {
            trace("meta");
            meta = item;
            // Resize Video object to same size as meta data.
            video.width = item.width;
            video.height = item.height;
            // Resize UIComponent to same size as Video object.
            uic.width = video.width;
            uic.height = video.height;
            panel.title = "framerate: " + item.framerate;
            panel.visible = true;
            trace(ObjectUtil.toString(item));
        }

        private function ns_onCuePoint(item:Object):void {
            trace("cue");
        }

Код mxml приемника:

<mx:Panel id="panel" visible="false">
    <mx:UIComponent id="uic" />
    <mx:ControlBar>
        <mx:Button label="Play/Pause" click="ns.togglePause();" />
        <mx:Button label="Rewind" click="ns.seek(0); ns.pause();" />
    </mx:ControlBar>
</mx:Panel>
...