【问题标题】:Simple Camera in Actionscript/flex How to?Actionscript/flex 中的简单相机如何?
【发布时间】:2013-06-04 18:45:40
【问题描述】:

尝试在动作脚本中创建一个简单的相机我没有运气。我不想要任何控制——只是一个请求权限的阶段,然后是我在窗口中的实时视频。没什么好看的

这是我目前所拥有的:(最近的失败......)

     package {

        import flash.display.Sprite;
        import flash.media.*;

        public class FlashCamera extends Sprite
       {
       var cam:FlashCamera = Camera.getCamera(); 
       var vid:Video = new Video(); 
       vid.attachCamera(cam); 
       addChild(vid);


    }

    }

当我尝试编译它时抛出这个错误: 通过静态类型 Class 的引用调用可能未定义的方法 getCamera

我在 windows 命令行中使用 flex 进行编译,如下所示:

(path to SDK)/bin/mxmlc Camera.as

请注意,我是 actionscript/flash 开发的新手。

有人可以解释一下我做错了什么吗?

【问题讨论】:

  • 发布编译时抛出的错误。

标签: actionscript-3 apache-flex


【解决方案1】:

一方面,您正在使用来自两个不同命名空间的名为 Camera 的类,而不会在两者之间消除歧义。您可能还必须导入其他包以支持相机和视频的 API 版本(flash.media.Camera 和 flash.media.Video),但我不完全相信这不会隐式完成,尤其是不会了解您正在使用的环境。

您必须注意的另一件事是,就实时错误而言,浏览器需要几秒钟才能真正获取相机 - 只需继续尝试抓取它至少几秒钟,直到它返回不是 null 的东西。

【讨论】:

  • 仍有一些歧义(或至少是半歧义)。您在尝试在 flash.media 中使用 Camera 类的同一文件中调用自定义类“Camera”。特别是考虑到错误的描述,编译器可能认为你在谈论你自己的类。改用这个:var cam:flash.media.Camera = flash.media.Camera.getCamera();
  • 或者真的你可能只想重命名你的类,这样可以消除这个问题。
  • 好的-重命名,现在它在抱怨 vid。你有没有什么像样的 tuts 推荐,或者只是重写该死的东西,因为它不应该超过 20 行?感谢您的帮助!
  • 我找不到任何教程——即使在 Adob​​e 的网站上,它也为初学者提供了一个体面的演练——确实有效。
  • 还有一些句法/半句法问题需要解决,但我可能需要让您尝试从这里解决一些问题。如果您曾经使用过 Java,那么这种代码就不会太远了。
【解决方案2】:

找到了一些真正有效的东西,并将根据我的需要进行调整:

  package
        {
            import flash.display.Sprite;
            import flash.events.NetStatusEvent;
            import flash.net.NetConnection;
            import flash.net.NetStream;
            import flash.media.Camera;
            import flash.media.Microphone;
            import flash.media.Video;

        public class FlashVideo extends Sprite
        {
            private var nc:NetConnection;
            private var good:Boolean;
            private var rtmpNow:String;
            private var nsIn:NetStream;
            private var nsOut:NetStream;
            private var cam:Camera;
            private var mic:Microphone;
            private var vidLocal:Video;
            private var vidStream:Video;
            public function FlashVideo()
            {
                trace("Hello testing");
                rtmpNow = "rtmp://localhost/LiveStreams";
                nc=new NetConnection();
                nc.connect(rtmpNow);
                nc.addEventListener(NetStatusEvent.NET_STATUS,checkCon);
                setCam();
                setMic();
                setVideo();
            }
            private function checkCon(e:NetStatusEvent):void
            {
                good = e.info.code == "NetConnection.Connect.Success";
                if (good)
                {
                    nsOut = new NetStream(nc);
                    nsOut.attachAudio(mic);
                    nsOut.attachCamera(cam);
                    nsOut.publish("left","live");
                    nsIn = new NetStream(nc);
                    nsIn.play("right");
                    vidStream.attachNetStream(nsIn);
                }
            }
            private function setCam()
            {
                cam = Camera.getCamera();
                cam.setKeyFrameInterval(9);
                cam.setMode(640,400,30);
                cam.setQuality(0,95);
            }
            private function setMic()
            {
                mic = Microphone.getMicrophone();
                mic.gain = 85;
                mic.rate = 11;
                mic.setSilenceLevel(15,2000);
            }


            private function setVideo()
            {
                vidLocal = new Video(cam.width,cam.height);
                addChild(vidLocal);
                vidLocal.x = 15;
                vidLocal.y = 30;
                vidLocal.attachCamera(cam);
                vidStream = new Video(cam.width,cam.height);
                addChild(vidStream);
                vidStream.x=(vidLocal.x+ cam.width +10);
                vidStream.y = vidLocal.y;
            }
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    相关资源
    最近更新 更多