本博推荐文章快速导航: Sql Server2005 Transact-SQL 新兵器学习 MCAD学习 代码阅读总结 ASP.NET状态管理 DB(数据库) WAP WinForm Flex,Fms

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

系列文章导航
  1. Flex,Fms3相关文章索引
  2. Air版免费视频成人聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))

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

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

 

收藏与分享

收藏到QQ书签 添加到百度搜藏 添加到百度搜藏 添加到雅虎收藏 分享到饭否 收藏到就喜欢网络收藏夹

RSS订阅我 什么是RSS?

feedsky    http://wap.feedsky.com/aierongrss    E-mail
订阅到雅蛙       使用RSS邮天下订阅    订阅到有道阅读
订阅到抓虾    鲜果阅读器订阅图标    Add to Google
訂閱 Bloglines    哪吒提醒    Subscribe in NewsGator Online

东莞.net俱乐部

东莞.net俱乐部 欢迎您的加入

我的系列文章
A.Sql Server2005 Transact-SQL 新兵器学习
B.MCAD学习
C.代码阅读总结
D.ASP.NET状态管理
E.DB(数据库)
F.WAP
G.WinForm
H.Flex

我的好文推荐
FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))<视频聊天,会议开发实例8>
Sql Server2005 Transact-SQL 新兵器学习总结之-总结
MS SQL数据库备份和恢复存储过程(加强版本)
sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现)
WAP开发资料站(最新更新)
自定义格式字符串随笔 (IFormattable,IFormatProvider,ICustomFormatter三接口的实现)
Mcad学习笔记之异步编程(AsyncCallback 委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)
Mcad学习笔记之通过反射调用類的方法,屬性,字段,索引器(2種方法)
Mcad学习笔记之序列化(2进制和Soap序列 化)
Mcad学习笔记之委托再理解(delegate的构造器,BeginInvoke,EndInvoke,Invoke4个方法的探讨)
ASP.NET状态管理之一(概括篇)
Flex,Fms学习笔记

希望上面提到的知识对您有所提示,同时欢迎交流和指正
作者:aierong
出处:http://www.cnblogs.com/aierong
贴子以"现状"提供且没有任何担保,同时也没有授予任何权利!
本文版权归作者所有,欢迎转载!
原创技术文章和心得,转载注明出处!这也是对原创者的尊重!

posted @ 2009-02-20 08:01 aierong 阅读(3949) 评论(14) 编辑 收藏

 回复 引用   
#1楼 2009-03-08 09:45 Robin_TYUT
为什么我的程序显示是错误的。
“An unknown item is declared as the root of your MXML document”
我觉得是无法识别 <mx:WindowedApplication >标签。
请问是怎么回事?

 回复 引用   
#2楼 2009-03-08 10:39 Robin_TYUT
搞清楚了,原来建的工程是桌面应用型的
 回复 引用 查看   
#3楼[楼主] 2009-03-08 19:10 aierong      
--引用--------------------------------------------------
Robin_TYUT: 为什么我的程序显示是错误的。
“An unknown item is declared as the root of your MXML document”
我觉得是无法识别 &lt;mx:WindowedApplication &gt;标签。
请问是怎么回事?
--------------------------------------------------------


我的代码是air程序的
也就是说<mx:WindowedApplication >标签的

 回复 引用   
#4楼 2009-05-19 17:05 husiwei[未注册用户]
这是错误的结论吧? 如果摄像头被其他应用程序占用,this.vdpaly.attachCamera(this.camera);将会抛出异常~!
 回复 引用 查看   
#5楼[楼主] 2009-05-20 08:26 aierong      
--引用--------------------------------------------------
husiwei: 这是错误的结论吧? 如果摄像头被其他应用程序占用,this.vdpaly.attachCamera(this.camera);将会抛出异常~!
--------------------------------------------------------

可以判断呀,我是在air环境中亚

 回复 引用 查看   
#6楼 2009-09-04 20:50 牛啊牛      
说得很好
 回复 引用 查看   
#7楼[楼主] 2009-09-07 10:47 aierong      
引用牛啊牛:说得很好


呵呵
谢谢

 回复 引用 查看   
#8楼 2010-11-27 16:21 BigMouth      
博主..我又来了..我想像您请教个问题..为什我判断是否设备被占用不能用呢..我用的是Flex4.0
 回复 引用 查看   
#9楼[楼主] 2010-12-01 15:10 aierong      
引用BigMouth:博主..我又来了..我想像您请教个问题..为什我判断是否设备被占用不能用呢..我用的是Flex4.0


fms3.0

 回复 引用 查看   
#10楼 2010-12-01 15:19 BigMouth      
谢谢博主..
不知道可不可以向博主请教一些FMS+FLEX的问题呢?


那我就开始了啊
就是我多个用户向一个管理员发送请求--通过FMS服务器.. 我服务器该怎么处理呢? 管理员要返回处理的每个用户的结果

 回复 引用 查看   
#11楼[楼主] 2010-12-19 16:12 aierong      
引用BigMouth:
谢谢博主..
不知道可不可以向博主请教一些FMS+FLEX的问题呢?


那我就开始了啊
就是我多个用户向一个管理员发送请求--通过FMS服务器.. 我服务器该怎么处理呢? 管理员要返回处理的每个用户的结果


广播呀

 回复 引用 查看   
#12楼 2011-01-07 15:37 戒掉戒      
画中画怎么实现呢?
就是类似于qq的视频聊天一样。
本地的视频在右下角,而且可以拖动。

 回复 引用 查看   
#13楼 2011-01-10 14:05 小新手      
不知道这个程序是不是转载的 在AIR这个程序可能是没错的 但是在RIA中这个代码是有问题的 要是在RIA中进行视频的时候会进行视频设置 而这个设置是同步的 如果你这么写 在设置没有点击允许的情况
camera.currentFPS 会一直是0 也就是会就算视频没有被占用也会弹出占用窗体。

 回复 引用 查看   
#14楼[楼主] 2011-02-13 15:09 aierong      
引用小新手:
不知道这个程序是不是转载的 在AIR这个程序可能是没错的 但是在RIA中这个代码是有问题的 要是在RIA中进行视频的时候会进行视频设置 而这个设置是同步的 如果你这么写 在设置没有点击允许的情况
camera.currentFPS 会一直是0 也就是会就算视频没有被占用也会弹出占用窗体。



air程序的