随笔 - 1330  文章 - 1  评论 - 378  阅读 - 482万 

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

1.被占用

2.没安装摄像头

3.正常

 

看下面代码:

 

复制代码
代码
<?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

posted on   钱途无梁  阅读(524)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2009-04-16 C# 生成js文件
2009-04-16 onmousemove与onmouseover区别
点击右上角即可分享
微信分享提示