0

我正在使用 adobe FMS 4.5 在同一应用程序中从网络摄像头录制视频并从 fms 播放 netsream。

我的客户端动作脚本就像

package
{
    import fl.controls.Button;
    import flash.display.Sprite;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.events.NetStatusEvent;
    import flash.events.MouseEvent;
    import flash.events.Event;
    //import flash.net.ObjectEncoding;
    import flash.media.Camera;
    import flash.media.Microphone;
    import flash.media.Video;



public class mytest3 extends Sprite
    {

        private var nc:NetConnection;
        private var ns:NetStream;
        private var rtmpNow:String;
        private var msg:Boolean;
        private var cam:Camera;
        private var mic:Microphone;
        private var vid1:Video;
        private var recordBtn:Button;
        private var stopBtn:Button;
        private var playBackBtn:Button;
        private var textInput:TextInput;
        private var timestamp:Date    = new Date();
        private var fileName:String;


        //Constructor
        function mytest3 ()
        {
            //NetConnection.defaultObjectEncoding = flas    h.net.ObjectEncoding.AMF0;
            nc=new NetConnection();
            nc.addEventListener (NetStatusEvent.NET_STATUS,checkConnect);
            rtmpNow="rtmp://localhost/test1";
            //rtmpNow="rtmp://192.169.1.25/test1";

            nc.connect (rtmpNow);
            addMedia ();
            addUI ();
            recordBtn.addEventListener (MouseEvent.CLICK,startRecord);
            stopBtn.addEventListener (MouseEvent.CLICK,stopRecord);
            playBackBtn.addEventListener(MouseEvent.CLICK,playBack);
    }

        private function addMedia ():void
        {
            cam=Camera.getCamera();
            cam.setMode (240,180,24);
            cam.setQuality (0,100);
            mic=Microphone.getMicrophone();
            vid1=new Video(cam.width,cam.height);
            vid1.attachCamera (cam);
            addChild (vid1);
            vid1.x=100;
            vid1.y=50;
        }

        private function addUI ():void
        {
            recordBtn=new Button();
            recordBtn.label="Start Recording";
            recordBtn.x=100;
            recordBtn.y=50+(cam.height) +5;
            recordBtn.width=70;
            addChild (recordBtn);

            stopBtn=new Button();
            stopBtn.label="Stop Recording";
            stopBtn.x=recordBtn.x+85;
            stopBtn.y=recordBtn.y;
            stopBtn.width=75;
            addChild (stopBtn);

            playBackBtn=new Button();
            playBackBtn.label="PlayBack";
            playBackBtn.x=stopBtn.x+85;
            playBackBtn.y=recordBtn.y;
            playBackBtn.width=75;
            addChild(playBackBtn);

        }

        private function checkConnect (e:NetStatusEvent):void
        {
            msg=(e.info.code=="NetConnection.Connect.Success");
            if (msg)
            {
                ns = new NetStream(nc);
            }
        }

        private function startRecord (e:Event):void
        {
            if (ns)
            {
                //recordBtn.label="Recording";
                recordBtn.visible=false;
                ns.attachAudio (mic);
                ns.attachCamera (cam);
                fileName = String("videos"+timestamp.getTime());
                ns.publish(fileName,"record")

            }
        }

        private function stopRecord (e:Event):void
        {
            //recordBtn.label="Recorded"
            recordBtn.visible=false;;
            stopBtn.label="Stoped";
            ns.close ();
        }
        private function playBack(e:Event):void 
        {
            playBackBtn.label="Playing Back";
            stopBtn.visible=false;
            var nsPlayer:NetStream = new NetStream(nc);
            //nsPlayer.play("my.flv");
            var vid:Video = new Video(cam.width,cam.height);
            vid.x = playBackBtn.x+30;
            vid.y = vid1.y;
            vid.attachNetStream(nsPlayer);
            nsPlayer.play(fileName);
            vid.smoothing=true;
            addChild(vid);
        }
    }
}  

录音和回放工作正常。我希望它在播放时看起来像带有播放、暂停、搜索栏等控件的 youtube 视频。

4

1 回答 1

0

您要么需要自己创建这些控件,要么使用 Flash 组件 ( FLVplayback ) 或Strobe(尽管我认为没有一种简单的方法可以将 strobe 嵌入到现有的带有 swc 的 Flash 项目中,也许其他人可以发表评论或编辑此以澄清)

FLVplayback 可以换成你想要的外观

于 2012-08-23T16:38:32.867 回答