使用 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 将摄像头的捕获模式设置为最符合指定要求的本机模式。
实例如下:
1 package 2 { 3 import flash.display.Bitmap; 4 import flash.display.BitmapData; 5 import flash.display.Sprite; 6 import flash.events.ActivityEvent; 7 import flash.events.Event; 8 import flash.geom.Matrix; 9 import flash.media.Camera; 10 import flash.media.Video; 11 12 public class Main extends Sprite 13 { 14 private var cam:Camera = Camera.getCamera(); 15 private var vid:Video; 16 private var bt:Bitmap = new Bitmap(); 17 private var btd:BitmapData; 18 public function Main() 19 { 20 if(stage == null) 21 { 22 init(null); 23 }else 24 { 25 addEventListener(Event.ADDED_TO_STAGE,init); 26 } 27 } 28 private function init(e:Event):void 29 { 30 removeEventListener(Event.ADDED_TO_STAGE,init); 31 vid = new Video(400,400); 32 btd = new BitmapData(400,400,false) 33 bt.bitmapData = btd; 34 this.addChild(bt); 35 addEventListener(Event.ENTER_FRAME,onEnterFrameHandler); 36 cam.setMode(400,400,15); 37 vid.attachCamera(cam); 38 cam.setMotionLevel(60,2000); 39 cam.addEventListener(ActivityEvent.ACTIVITY,onActivityhandler); 40 } 41 42 protected function onActivityhandler(event:ActivityEvent):void 43 { 44 switch (event.activating) 45 { 46 case true: 47 trace("动了"+cam.activityLevel); 48 break; 49 case false: 50 trace("停止"+ cam.activityLevel) 51 break; 52 53 } 54 } 55 56 protected function onEnterFrameHandler(event:Event):void 57 { 58 btd.draw(vid,new Matrix(-1,0,0,1,400,0)); 59 } 60 } 61 }
转自:http://www.cnblogs.com/--2174521/archive/2012/11/07/2763363.html