As3 AIR不需要的延迟,直到网络摄像头出现在视频上

时间:2012-03-09 10:36:59

标签: actionscript-3 video air webcam

我正在尝试将相机流附加到视频对象(正常工作)。唯一的问题是,在流出现之前最多有4秒的延迟。将事件监听器添加到视频对象(如VideoEvent.READY)或类似于事件.ACTIVATE的camerea对象似乎不会被抛出。 (onReady会捕获事件类型= *的两个事件)。我需要知道,因为屏幕是白色的,我想显示缓冲区,并在显示网络摄像头数据时将其删除。

我必须注册哪些活动?

由于这是一个空中应用程序,我没有安全对话,以防这是你的第一枪;)

我这样做:

cam = Camera.getCamera();
cam.addEventListener(Event.ACTIVATE, onReady)
if (cam != null) {
    cam.setMode(1920, 1080, 25);
    cam.setQuality(0, 100);
    video = new Video();
    addChild(video);
    video.attachCamera(cam);

    video.addEventListener(VideoEvent.READY, onReady, false, 0, true);
    video.width = 1920;
    video.height = 1080
}
谢谢你!

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

function cameraActivityHandler(event:ActivityEvent){
    var cam:Camera = event.target as Camera;
    if(cam.activityLevel > 0){
       //Hide loading buffer...
    }
}
function initCamera():void{
  cam = Camera.getCamera();
  cam.addEventListener(ActivityEvent.ACTIVITY, cameraActivityHandler);
  if (cam != null) {
     cam.setMode(1920, 1080, 25);
     cam.setQuality(0, 100);
     video = new Video(1920,1080);
     addChild(video);
     video.attachCamera(cam);    

     //Show loading buffer...
  }      
}