flex 检测摄像头和麦克风的方法

作者:袖梨 2022-06-28

今天又把项目里检测摄像头这一块重写了,记点东西在flex里面,跳出安全权限的窗口为

 代码如下 复制代码


Security.showSettings(SecurityPanel.PRIVACY);

这句代码为非阻塞的,所以我们需要对摄像头和麦克风进行监听

 

 代码如下 复制代码
mic = Microphone.getEnhancedMicrophone();
mic.addEventListener(StatusEvent.STATUS,EventArgExtend.create(audio_statusHandler,par1,par2));

我们可以用mic.muted mic.Unmuted 判断授权状态

 

 代码如下 复制代码
camera = Camera.getCamera()
camera.addEventListener(StatusEvent.STATUS, EventArgExtend.create(camera_statusHandler,par1,par2));

Camera.muted 指示用户拒绝访问摄像头;Camera.Unmuted 指示用户允许访问摄像头

代码中的EventArgExtend.create 是一个类,作用是为了给监听事件传参,代码可以自己baidu,google

用法可以看下面的示例,还提供了一些方法大家可以自行察看as文件。其中,检测麦克风的功能还不完善。

 代码如下 复制代码

import cn.mediasky.media.*;
//建立selecter实例,必须使用main方法创建。
//四个参数分别为,selecter上级的影片剪辑,Depth,x位置,y位置
var my_selecter = Selecter.main(_root, 0, 50,20);
//注册为侦听器
my_selecter.addListener(_root);
//检测摄像头状态
my_selecter.checkCam();
//处理摄像头状态
function onCamStatus(iInfo:Info):Void{
 if(iInfo.code == "UnMuted"){
  _root.my_video.attachVideo(iInfo.cam);
 }else{
  _root.my_video.clear();
 }
}

其中StatusEvent中的code返回值g官方文档为:

在麦克风报告其状态时调度。如果 code 属性的值为“Microphone.Muted”,则表示用户拒绝 SWF 文件访问麦克风。如果 code 属性的值为“Microphone.Unmuted”,则表示用户允许 SWF 文件访问麦克风。
在摄像头报告其状态时分派。若 code 属性的值为 “Camera.Muted”,则表示用户已拒绝 SWF 文件访问其摄像头。如果 code 属性的值为“Camera.Unmuted”,则表示用户允许 SWF 文件访问其摄像头。

相关文章

精彩推荐