[Flex]as3.0检测当前摄像头状态(占用,没有,正常)三种状态
在视频程序的编写过程中,我们经常要使用摄像头,在使用摄像头前有必要对摄像头的现有状态做个检测(是否被占用,没安装摄像头,正常)
在视频程序的编写过程中,我们经常要使用摄像头,在使用摄像头前有必要对摄像头的现有状态做个检测:
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("CuPlayer.com提示没安装摄像头");
- }
- }
- 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)
- {
- //CuPlayer.com提示视频设备可用
- clearInterval(this.intervalId);
- this.isBusyCamera=false;
- Alert.show("CuPlayer.com提示摄像头正常");
- }
- else
- {
- times++;
- trace("times=" + times.toString());
- if (times > 30)
- {
- //CuPlayer.com提示视频设备忙
- clearInterval(intervalId);
- this.isBusyCamera=true;
- Alert.show("CuPlayer.com提示摄像头被占用");
- }
- }
- }
- 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
热门文章推荐
- [flex]flex视频监控分区多屏播放器源代码
- [FLEX]Flex4制作Flv视频播放器
- [Flex]flex做的加载进度条loading源代码实例
- [Flex]浏览器chromeFlash安全沙箱有冲突错误的解决办法
- [Flex]as3.0检测当前摄像头状态(占用,没有,正常)三种状态
- [Flex]Flex截图功能的实现与代码实例
- [Flex]使用控件MenuBar添加一个菜单 在子菜单点击时执行事件
- [Flex]Flex数组的使用及定义方法中使用可变参数代码示例
请稍候...