检测摄像头和麦克风状态并自动进行处理的类

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本博客采用 WPCMD 维护;
  • 本文标题:检测摄像头和麦克风状态并自动进行处理的类
  • 本文链接:http://zengrong.net/post/212.htm

在对客户的摄像头和麦克风进行探测时,有许多的不确定性。例如,客户可能会禁用摄像头,可能有一个以上的摄像头,还可能先允许使用摄像头,再使用“属性”菜单禁用摄像头。因此,前几天升级聊天室程序的时候,就就写了这样一个类来进行处理,还可以方便在使用了摄像头和麦克风的程序中使用。

其中,Checker类仅用于检测摄像头和麦克风状态并返回;Selecter类继承Checker类,它不仅和Checker一样返回状态,同时也回根据当前的状态做出反映。例如,如果禁用了摄像头,就会显示一个按钮,单击可以打开“设置”对话框。只有当允许使用摄像头时,此按钮才会消失。如果有一个以上的摄像头,则会显示一个下拉列表并提供选择按钮。

用法可以看下面的示例,还提供了一些方法大家可以自行察看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();
    }
}

范例演示:

  MediaChecker 源码 (129.1 KiB, 1,198 hits)