加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex(flash)检测摄像头的3种状态(是否被占用,没安装摄像头,正常)

发布时间:2020-12-15 04:47:01 所属栏目:百科 来源:网络整理
导读:在视频程序的编写过程中,我们经常要使用摄像头,在使用摄像头前有必要对摄像头的现有状态做个检测: 1.被占用 2.没安装摄像头 3.正常 ? 看下面代码: ?xml version="1.0" encoding="utf-8"? mx:WindowedApplication xmlns:mx=" http://www.adobe.com/2006/mx

在视频程序的编写过程中,我们经常要使用摄像头,在使用摄像头前有必要对摄像头的现有状态做个检测:

1.被占用

2.没安装摄像头

3.正常

?

看下面代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="
http://www.adobe.com/2006/mxml"
??? layout="absolute" creationComplete="init()">


??? <mx:Script>
??????? <![CDATA[


??????????? import mx.controls.Alert;
??????????? private var camera:Camera;
??????????? private var isExistsCamera:Boolean=false;
??????????? private var isBusyCamera:Boolean=false;
??????????? private var intervalId:uint;
??????????? private var times:int;

??????????? private function init():void
??????????? {
??????????????? camera=Camera.getCamera();
??????????????
if (camera == null)
??????????????? {
?????????????????? if (Camera.names.length <= 0)
??????????????????? {
??????????????????????? this.isExistsCamera=false;
??????????????????????? Alert.show("没安装摄像头");
??????????????????? }
??????????????? }
??????????????? else
??????????????? {
??????????????????? this.vdpaly.attachCamera(this.camera);
??????????????????? this.isCameraBusy();
??????????????? }
??????????? }


??????????? private function isCameraBusy():void
??????????? {
??????????????? this.intervalId=setInterval(callback,50);
??????????? }

?

??????????? private function callback():void
??????????? {
??????????????? trace("currentFPS=" + camera.currentFPS.toString());

?????????????? if (camera.currentFPS > 0)
??????????????? {
??????????????????? //视频设备可用
??????????????????? clearInterval(this.intervalId);
??????????????????? this.isBusyCamera=false;
??????????????????? Alert.show("摄像头正常");
??????????????? }
??????????????? else
??????????????? {
??????????????????? times++;
??????????????????? trace("times=" + times.toString());

??????????????????? if (times > 30)
??????????????????? {
??????????????????????? //视频设备忙
??????????????????????? clearInterval(intervalId);
??????????????????????? this.isBusyCamera=true;
??????????????????????? Alert.show("摄像头被占用");
??????????????????? }
??????????????? }
??????????? }

?

???????????? private function cl():void
??????????? {
??????????????? Alert.show(this.camera.currentFPS.toString());
??????????? }

?

??????? ]]>
??? </mx:Script>


??? <mx:VideoDisplay?? id="vdpaly"? click="cl()" x="44" y="64" width="232" height="236"/>


</mx:WindowedApplication>

?

代码说明:

camera == null,那么就是没安装摄像头

如果摄像头被占用,那么camera.currentFPS 肯定不会大 于0,而是等于0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读