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

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

1.被占用

2.没安装摄像头

3.正常

 

看下面代码:

 

ExpandedBlockStart.gif 代码
<? xml version = " 1.0 "  encoding = " utf-8 " ?>  

< mx:WindowedApplication xmlns:mx = " http://www.adobe.com/2006/mxml%22 

    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

 

我之前有研究过.是这样

 

 

 

转自:http://blog.163.com/terry_boss/blog/static/3335226220095114272344/?fromdm&fromSearch

转载于:https://www.cnblogs.com/qiantuwuliang/archive/2010/04/16/1713281.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值