flash camera类操作摄像头示例

package 

{

	import flash.display.Sprite;

	import flash.media.Camera;

	import flash.media.Video;

	import flash.display.StageScaleMode;

	import flash.display.StageAlign;

	import flash.events.ActivityEvent;

	import flash.events.StatusEvent;

	/**

	 * ...

	 * @author chb

	 */

	public class cameraExample extends Sprite

	{

		/**

		 * ...

		 * 构造函数

		 */

		public function cameraExample():void

		{

			trace("进入了构造函数");

			setMain();

		}

		private var vid:Video;//声明视频对象

		/**

		 * ...

		 * 主函数

		 */

		public function setMain():void

		{

			//设置舞台属性

			stage.scaleMode = StageScaleMode.NO_SCALE;

			stage.align = StageAlign.TOP_LEFT;

			//获取摄像头对象

			var camera:Camera = Camera.getCamera();

			//判断此对象是否为空

			if (camera == null)

			{

				trace("此机器上没有安装摄像头");

			}

			else

			{

				camera.setLoopback(true);//压缩视频流

				camera.setQuality(100000, 1000);//设置宽带量和画面质量

				camera.addEventListener(ActivityEvent.ACTIVITY, activityHandler);

				camera.addEventListener(StatusEvent.STATUS,statusHandler);

				//创建一个视频对象

				vid = new Video(camera.width * 2, camera.height * 2);

				//将摄像头流添加的视频

				vid.attachCamera(camera);

				//将视频添加到舞台

				stage.addChild(vid);

				trace("视频输入信号可以使用的最大宽度:" + camera.bandwidth);

				trace("画面质量级别:" + camera.quality);

				trace("摄像头捕获数据的速率:" + camera.currentFPS);

				trace("摄像头名称:"+camera.name)

			}

		}

		/**

		 * ...

		 * 在摄像头开始或结束会话时调度事件

		 */

		public function activityHandler(e:ActivityEvent)

		{

			trace("ActivityEvent:"+e);

		}

		/**

		 * ...

		 * 在摄像头报告期状态时调度事件

		 */

		public function statusHandler(e:StatusEvent):void

		{

			trace("statusHandler:"+e.code);

		}

	}

	

}

你可能感兴趣的:(Camera)