Camera类
使用 Camera 类可从连接到运行 Flash Player 的计算机的摄像头中 捕获视频。 使用 Video 类可在本地监视视频。 使用 NetConnection 和 NetStream 类可将视频传输到 Flash Media Server。 Flash Media Server 可以将视频流发送到其它服务器,并向运行 Flash Player 的其它客户端广播此视频流。 若要创建或引用 Camera 对象,请使用 getCamera() 方法。
公共属性:
activityLevel : Number--摄像头正在检测的运动量。
bandwidth : int--当前输出视频输入信号可以使用的最大带宽, 以字节为单位。
constructor : Object--对类对象或给定对象实例的构造函数的引用。
currentFPS : Number--摄像头捕获数据的速率,以每秒帧数为单位。
fps : Number--摄像头捕获数据的最大速率,以每秒帧数为单位。
height : int--当前捕获高度,以像素为单位。
index : int--从零开始的整数,指定由 names 属性返回的数组中所 反映的摄像头的索引。
keyFrameInterval : int--完整传输而没有使用视频压缩算法进行插 值处理的视频帧(称为关键帧)数。
loopback : Boolean--指示在本地查看摄像头所捕获的图像时是进行 压缩和解压缩 (true),就像使用 Flash Media Server 进行实时传输 一样,还是不进行压缩 (false)。
motionLevel : int--调用 activity 事件所需的运动量。
motionTimeout : int--摄像头停止检测运动的时间与调用 activity 事件的时间之间相差的毫秒数。
muted : Boolean--布尔值,指示用户在 Flash Player 的“隐私”对 话框中是拒绝访问摄像头 (true) 还是允许访问 (false)。
name : String--由摄像头硬件返回的当前摄像头的名称。
names : Array--[静态]字符串数组,指示所有可用的摄像头名称, 而不显示 Flash Player 的“隐私”对话框。
prototype : Object--[静态] 对类或函数对象的原型对象的引用。
quality : int--所需的图片品质级别,该级别是由应用于每个视 频帧的压缩量决定的。
width : int--当前捕获宽度,以像素为单位。
公共方法:
getCamera(name:String = null):Camera--[静态] 返回对用于捕获视 频的 Camera 对象的引用。
setKeyFrameInterval(keyFrameInterval:int):void--指定进行完整传输 而不由视频压缩算法进行插值处理的视频帧(称为关键帧)。 setLoopback(compress:Boolean = false):void--指定在本地查看摄像 头时是否使用压缩视频流。
setMotionLevel(motionLevel:int, timeout:int = 2000):void--指定调度 activity 事件所需的运动量。
setQuality(bandwidth:int, quality:int):void--设置每秒的最大带宽或 当前输出视频输入信号所需的画面质量 setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void 将摄像头的捕获模式设置为最符合指定要求的本机模式。
实例如下:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.ActivityEvent;
import flash.events.Event;
import flash.geom.Matrix;
import flash.media.Camera;
import flash.media.Video; public class Main extends Sprite
{
private var cam:Camera = Camera.getCamera();
private var vid:Video;
private var bt:Bitmap = new Bitmap();
private var btd:BitmapData;
public function Main()
{
if(stage == null)
{
init(null);
}else
{
addEventListener(Event.ADDED_TO_STAGE,init);
}
}
private function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE,init);
vid = new Video(400,400);
btd = new BitmapData(400,400,false)
bt.bitmapData = btd;
this.addChild(bt);
addEventListener(Event.ENTER_FRAME,onEnterFrameHandler);
cam.setMode(400,400,15);
vid.attachCamera(cam);
cam.setMotionLevel(60,2000);
cam.addEventListener(ActivityEvent.ACTIVITY,onActivityhandler);
} protected function onActivityhandler(event:ActivityEvent):void
{
switch (event.activating)
{
case true:
trace("动了"+cam.activityLevel);
break;
case false:
trace("停止"+ cam.activityLevel)
break; }
} protected function onEnterFrameHandler(event:Event):void
{
btd.draw(vid,new Matrix(-1,0,0,1,400,0));
}
}
}
转自:http://www.cnblogs.com/--2174521/archive/2012/11/07/2763363.html