0

私は基本的に、ビデオ通話用の Flex と netstream を使用して作業を開始しています。そのため、ネットストリームとストリーミングについて少し読むことができました。このコードを書いて、カメラを取得し、ストリームをビューの下のビデオ表示に公開しましたが、エラーなしですべてのメソッドを通過しても、表示はそうではありません表示されるので、何が起こっているのかよくわかりません。これが私がしたことです。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160" creationComplete="start();">
    <fx:Script>
        import flash.media.Camera;
        import flash.media.Video;
        import flash.net.NetConnection;
        import flash.net.ObjectEncoding;
        import flash.events.AsyncErrorEvent; 
        import flash.events.NetStatusEvent;
        import flash.net.NetStream;
        import mx.graphics.ImageSnapshot;
        import mx.graphics.codec.JPEGEncoder;

        public var camera:Camera;
        var video:Video;
        public var myVideo:Video;
        private var nc:NetConnection;
        private var rtmpf:String="rtmfp://p2p.rtmfp.net/61c33c80be7022350a0dea3d-960194f988ba/";
        private const DEVKEY:String = "61c33c80be7022350a0dea3d-960194f988ba";

        public var in_ns:NetStream;
        public var out_ns:NetStream;
        public function start():void{
            trace("Started the start function");
            nc=new NetConnection();
            nc.objectEncoding = ObjectEncoding.AMF0;
            nc.client=this;
            nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            nc.connect(rtmpf);
        }
        public function netStatusHandler(event:NetStatusEvent):void{
            switch(event.info.code){
                case "NetConnection.Connect.Success":
                    trace("Received the status");
                    initStart();
                    default:
                    trace( event.info.code);
            }
        }

        public function initStart():void{
            trace("Started the initstart function");
            initNetStream();
            initMyVideo();
            publish();
            playIt();

        }

        public function initNetStream():void{
            trace("Started the initNetstream start function");
            out_ns=new NetStream(nc);
            out_ns.client=this;
            in_ns=new NetStream(nc);
            in_ns.client=this;
        }

        public function publish():void{
            trace("Started the publish function");
            camera=Camera.getCamera();
            out_ns.attachCamera(camera);
            out_ns.publish("Me", "live");

        }
        public function startCamera(muteCam:Boolean=false):void{
            if(!video)
            video = new Video(); 
            trace("Started the startCamera function");
            camera=Camera.getCamera();
            if(muteCam){
                video.attachCamera(camera);
                //out_ns.attachCamera(camera);
                //out_ns.publish("Me", "live");
                vidHolder.addChild(video);
            }else{
                video.attachCamera(null);
                if(contains(video))
                    vidHolder.removeChild(video);
                //camera=null;

            }


        }
        public function initMyVideo():void
        {
            trace("Started the initmyvideo function");
            myVideo = new Video(230,160);
            myVideo.x = 10;
            myVideo.width = 230; 
            myVideo.height = 160;
            myVideo.y = 30;
        //  myVid.addChild(myVideo);
        }

        public function playIt():void{
            trace("Started the play it function");
            myVideo.attachNetStream(in_ns);
            in_ns.play("Me");
            myVid.addChild(myVideo);
        }

        public function stopCamera():void{
            vidHolder.removeChild(video);
        }
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->

    </fx:Declarations>

    <s:Button x="116" y="28" label="Start" click="startCamera(true)"/>
    <s:VideoDisplay id="vidHolder" x="31" y="87" width="200" height="100"
                    />
    <s:VideoDisplay id="myVid" x="31" y="250"/>
    <s:Button id="stop" x="208" y="28" label="Stop" click="startCamera(false)"/>

</s:Application>
4

1 に答える 1

0

これらは、ストリームの表示を停止しているいくつかの理由です。

同じウェブカメラ デバイス ドライバーを使用して、同じブラウザーでテストしていますか?

ドライバーが使用されているため、表示できなかった可能性があります。Web サイトManyCamから仮想 Web カメラ ドライバーを入手してテストします。アプリケーションが機能します。

于 2013-07-25T10:31:31.167 に答える