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来获取视频的图片信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值