Camera类

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(bandint, quality:int):void--设置每秒的最大带宽或 当前输出视频输入信号所需的画面质量 setMode(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

原文地址:https://www.cnblogs.com/Sharley/p/5613472.html