[AS3]as3.0下检测检测摄像头占用情况的代码示例
摄像头激活后,持续检测与之关联的Video对象是否在播放(即每秒帧数)[AS3]as3.0下检测检测摄像头占用情况的代码示例
摄像头激活后,持续检测与之关联的Video对象是否在播放(即每秒帧数)
- btnCheck.addEventListener(MouseEvent.CLICK,btnCheckClick);
- var cam:Camera;
- var video:Video;
- var intervalId:uint;
- var intelvalTimes:uint=0;
- function btnCheckClick(e:MouseEvent) {
- cam=Camera.getCamera();
- if (cam==null) {
- lblResult.text="极酷播放器提示未安装摄像头!";
- return;
- }
- cam.addEventListener(StatusEvent.STATUS, statusHandler);
- cam.addEventListener(ActivityEvent.ACTIVITY,camActivityHandler);
- video=new Video(cam.width,cam.height);
- //trace("视频宽度:" + cam.width + ",视频高度:" + cam.height);
- video.x=10;
- video.y=40;
- video.attachCamera(cam);//执行这句时,flash才会弹出摄像头是否允许使用提示框
- }
- //极酷播放器提示摄像头有活动时,被触发
- function camActivityHandler(e:ActivityEvent) {
- trace(e);
- intervalId=setInterval(checkCallBack,100);
- }
- function checkCallBack():void {
- intelvalTimes+=1;
- trace(intelvalTimes);
- if (cam.currentFPS>0) {
- lblResult.text="摄像头工作正常!";
- clearInterval(intervalId);
- addChild(video);//加载到当前舞台中
- } else {
- if (intelvalTimes>=20) {//持续检测2秒,仍然无图象的话,认为"设备无法使用(占用中)"
- lblResult.text="设备无法使用(有可能被占用)";
- clearInterval(intervalId);
- }
- }
- }
- //极酷播放器提示用户选择"同意"或"不允许"使用摄像头时触发
- function statusHandler(e:StatusEvent) {
- trace(e);
- if (e.code=="Camera.Muted") {
- lblResult.text="您不允许使用摄像头!";
- } else if (e.code == "Camera.Unmuted") {
- lblResult.text="摄像头视频获取中...";
- }
- }
作者:菩提树下的杨过出处:http://yjmyzz.cnblogs.com
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...