民浩

 

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);
		}
	}
	
}

posted on 2011-06-17 00:08  民浩  阅读(3662)  评论(0编辑  收藏  举报

导航