Flash/Flex学习笔记(11):如何检测摄像头是否被占用

原理:摄像头激活后,持续检测与之关联的Video对象是否在播放(即每秒帧数)

btnCheck.addEventListener(MouseEvent.CLICK,btnCheckClick);

var cam:Camera;
var video:Video;
var intervalId:uint;
var intelvalTimes:uint=0;

function btnCheckClick(e:MouseEvent) {
	cam=Camera.getCamera();
	if (cam==null) {
		lblResult.text="未安装摄像头!";
		return;
	}
	cam.addEventListener(StatusEvent.STATUS, statusHandler);
	cam.addEventListener(ActivityEvent.ACTIVITY,camActivityHandler);
	video=new Video(cam.width,cam.height);
	//trace("视频宽度:" + cam.width + ",视频高度:" + cam.height);
	video.x=10;
	video.y=40;
	video.attachCamera(cam);//执行这句时,flash才会弹出摄像头是否允许使用提示框 
}

//摄像头有活动时,被触发
function camActivityHandler(e:ActivityEvent) {
	trace(e);
	intervalId=setInterval(checkCallBack,100);
}

function checkCallBack():void {
	intelvalTimes+=1;
	trace(intelvalTimes);
	if (cam.currentFPS>0) {
		lblResult.text="摄像头工作正常!";
		clearInterval(intervalId);
		addChild(video);//加载到当前舞台中  
	} else {
		if (intelvalTimes>=20) {//持续检测2秒,仍然无图象的话,认为"设备无法使用(占用中)"
			lblResult.text="设备无法使用(有可能被占用)";
			clearInterval(intervalId);
		}
	}
}

//用户选择"同意"或"不允许"使用摄像头时触发
function statusHandler(e:StatusEvent) {
	trace(e);
	if (e.code=="Camera.Muted") {
		lblResult.text="您不允许使用摄像头!";
	} else if (e.code == "Camera.Unmuted") {
		lblResult.text="摄像头视频获取中...";
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏无原型不设计

iPhone X的UI设计技巧

以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具。 果粉们翘首以待的iPhone X终于开始预售了!同样满怀...

2994
来自专栏无原型不设计

找不到交互设计实例?看这里!

现在很多优秀的网站、移动应用中都广泛的使用到交互设计。网络上也有很多相关的文章,例如什么是交互设计,交互设计的流程是怎样的?但是设计从来不是空谈,理论和实际的...

3405
来自专栏腾讯大讲堂的专栏

动效设计原理:从卡通动画到UI动效

作者:袁骁,腾讯SNG ISUX 用户体验设计师。热衷于研究 Emotional Design和认知心理学 UI是基于静态页面来设计的,页面之间通过跳转切换。在...

3218
来自专栏腾讯大讲堂的专栏

如何快速提升设计感

导语 | 好的设计原则是能被所有人掌握并运用的。本文列出了一些目前应用广泛又比较基础的设计实战窍门,掌握它们之后或许你能让你的设计朋友刮目相看呢! 如果你不相...

3776
来自专栏Material Design组件

Human Interface Guidelines —— 概览

2178
来自专栏非著名程序员

打造高逼格的开发利器,让你的代码敲出打字机的效果,甚至更……

作为程序员编程是非常重要的,但是在编程之余更为重要,更为好玩的一件事就是:打造自己敲代码的编辑器。我相信很多人都给自己的代码编辑器,查看器,IDE 等打造过各种...

1362
来自专栏知晓程序

懒得打字?这两款文字识别小程序,解放你的双手

在平时的工作和学习生活中,一旦碰到一些需要拷贝下来的图片上的文字,通常你会怎么做呢?

4572
来自专栏服务端技术杂谈

双管齐下:同时设计 iOS 和 Anroid

不管你是在家,在公司,还是在设计师工作室工作,互联网企业都会找你去给他们设计 App。为了满足所有顾客的需要,这些企业通常需要同时开发运行在 Android 和...

3655
来自专栏司想君

2017年前端开发手册一-2016前端技术回顾

2017年前端开发手册公布了,从今天开始陆续为大家送上翻译文章。每日一篇,今天是第一篇,是作者对2016年前端圈的一次技术回顾。 PS:附上一首目前金曲榜第...

3415
来自专栏无原型不设计

iOS界面设计,12个优秀案例激发你的灵感

总所周知,iOS和Android是当今两大移动平台,前者采用Human Interface Design,后者采用Material Design。作为设计师,尤...

3147

扫码关注云+社区

领取腾讯云代金券