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

简介:

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

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



    本文转自 OldHawk  博客园博客,原文链接:http://www.cnblogs.com/taobataoma/archive/2010/12/05/1896747.html,如需转载请自行联系原作者


相关文章
|
虚拟化
ESXi8下安装最新群晖DSM7.2.1-69057 Update1
ESXi8下安装最新群晖DSM7.2.1-69057 Update1
1102 0
|
监控 算法 安全
Apriori算法:文档管理软件中的智能标签建议
Apriori算法是一种关联规则挖掘算法,它可以用于在大规模数据集中查找项集之间的频繁性关联。该算法的核心思想是通过迭代计算事物间的相对支持度,并根据预设的阈值来剪枝,以得到频繁的关联项。Apriori算法的优势在于可以快速地找到大量且未知的关联规则,广泛应用于数据挖掘领域。
216 1
|
8月前
|
JavaScript 前端开发 物联网
ArkTs的@Watch状态监听
@Watch是ArkUI框架中用于监听状态变量变化的核心工具,类似Vue的Watch机制。状态更新时,方法触发,通过`changedPropertyName`区分多个绑定变量。需与@State、@Prop、@Link等装饰器配合使用,顺序上须置于这些装饰器之后。实际开发中,@Watch常与@Link(跨组件双向同步)或@Provide(跨代组件同步)结合使用。例如,通过@Link接收父组件变量并监听变化,动态调整子组件状态;或利用@Provide定义全局变量,监听后更新整体进度状态。这种机制提升了组件间状态管理的灵活性与解耦性,助力开发者高效构建复杂应用,实现“一次开发,多端部署”的目标。
477 15
|
存储 编解码 vr&ar
色彩空间与像素格式
颜色是不同波长的光对人眼刺激产生的色彩感觉。色彩空间(Color Space)是颜色的数学表示,根据不同的表示方法分为不同的色彩模型。最常用的色彩模型有三类:RGB(用于计算机图形学), YUV(用于视频系统), CMYK(用于彩色印刷)。后文对色彩空间与色彩模型的叫法不作区分。本文仅讨论视频图像处理领域常用的 RGB 色彩空间和 YUV 色彩空间。
3306 0
色彩空间与像素格式
|
PHP 数据安全/隐私保护 开发者
面向对象编程:提升代码的可维护
面向对象编程(OOP)的核心原则包括封装、继承和多态性。封装通过隐藏对象内部细节并提供访问接口增强安全性;继承允许新类继承现有类的属性和方法,提高代码复用率;多态性支持不同类实现相同方法但表现各异。在PHP中,可以通过私有或受保护属性实现封装,使用`extends`关键字实现继承,并通过方法重写实现多态性。例如,创建一个基本的用户类和继承自该类的管理员类,展示了封装和继承的实际应用。OOP不仅是一种编程风格,更是解决问题的思维模式,有助于提升代码质量和开发效率。
110 1
|
数据采集 Web App开发 程序员
成长的路上,谁不曾反复自我怀疑
大多数人在入门之后,都会遇到一个比较大的“瓶颈期”:这个阶段,你已经了解了编程语言的基本语法,可以看懂入门书上的所有例子,但是合上教程却又无法写出一个完整的代码,对于接下来的学习又缺少方向。以至于对编程这件事情感到迷茫,甚至自我怀疑。
|
Web App开发 Ubuntu Linux
Linux无图形界面环境使用Python+Selenium实践
【5月更文挑战第1天】Linux无图形界面环境使用Python+Selenium实践
1379 2
|
消息中间件 关系型数据库 MySQL
Flink CDC 最佳实践(以 MySQL 为例)
Flink CDC 最佳实践(以 MySQL 为例)
3842 0
|
算法 安全 Java
深入探索Java中的并发编程:CAS机制的原理与应用
总之,CAS机制是一种用于并发编程的原子操作,它通过比较内存中的值和预期值来实现多线程下的数据同步和互斥,从而提供了高效的并发控制。它在Java中被广泛应用于实现线程安全的数据结构和算法。
310 0