`
linxuexin
  • 浏览: 26397 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Flash中如何调用摄像头并保存08年12月31日

阅读更多
在Flash中调用摄像头并保存图片实现起来非常简单,用的是AS2.0,需要在flash的库中新建一个视频命名为video,然后可以就是下述代码放在需要的地方。

import flash.display.BitmapData;

myCrame=Camera.get();
if(myCrame==null)
{
//没有摄象头
gotoAndStop("err_noCrame");
_root.MSG="在您的机器上没有检测到摄象头\n或者您的摄象头设备正在使用中";
}

//不允许使用摄象头
myCrame.onStatus=function(infoObj:Object){
if(myCrame.muted)
{
//没有摄象头
    gotoAndStop("err_noCrame");
    _root.MSG="在您的机器上检测到摄象头\n但您拒绝了摄象头的使用";
}
}

myVideo.attachVideo(myCrame);

var imger:BitmapData = new BitmapData(myVideo._width, myVideo._height, false);
imgShow.cacheAsBitmap();
imgShow.attachBitmap(imger, this.getNextHighestDepth(), "auto", true);

AS3类似,网上有一段现成的类:
package {
    import flash.display.Sprite;
    import flash.text.*;
    import flash.media.Camera;
    import flash.events.StatusEvent;
    import flash.events.ActivityEvent;
    import flash.media.Video;

    public class CameraEx extends Sprite
    {
        private var label:TextField;
        private var camera:Camera;

        public function CameraEx()
        {
            label=addLabel("CameraEx");

            camera=Camera.getCamera();

            if(camera!=null){
                camera.addEventListener(StatusEvent.STATUS,statusHandler);
                camera.addEventListener(ActivityEvent.ACTIVITY,activityHandler);

                var video:Video=new Video(200,200);
                video.attachCamera(camera);
                addChild(video);
                video.x=20;
                video.y=20;
            }
            else{
                label.text="不能使用";
            }
        }

        private function statusHandler(evt:StatusEvent):void{
            if(camera.muted) label.text="不能使用";
        }

        private function activityHandler(evt:ActivityEvent):void{
            if(evt.activating){
                label.text="检测开始";
            }
            else{
                label.text="检测停止";
            }
        }

        private function addLabel(text:String):TextField{
            var label:TextField=new TextField();
            label.autoSize=TextFieldAutoSize.LEFT;
            label.text=text;
            addChild(label);
            return label;
        }
    }
}
保存主要靠BitmapData来获取视频的图片信息。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics