【问题标题】:ActionScript Flash - Webcam "onFrameChanged" event?ActionScript Flash - 网络摄像头“onFrameChanged”事件?
【发布时间】:2012-01-15 16:49:27
【问题描述】:

我正在开发一个可与网络摄像头配合使用的 Flash 应用程序。
我想分析视频录制的每一帧......哪个是正确的事件监听器?

这是我的实际代码:

private var video: Video;
private var webcam: Camera;

public function AugmentedReality() {
    webcam = Camera.getCamera();
    if (webcam != null) {
        webcam.setMode(WEB_CAMERA_WIDTH, WEB_CAMERA_HEIGHT, VIDEO_FRAME_RATE);
        video = new Video(VIDEO_WIDTH, VIDEO_HEIGHT);
        video.attachCamera(webcam);
        this.addChild(video);
        this.addEventListener(Event.ENTER_FRAME, handler);
    }
}

private function handler(aEvent : Event):void {
    // I don't want to use this handler,
    // it is called several times on the same frame if FPS is low
}

【问题讨论】:

    标签: flash actionscript-3 event-handling webcam augmented-reality


    【解决方案1】:

    我不确定您所说的“分析视频录制的每一帧”是什么意思,但有 ActivityEvent,用于检测相机图像自上一帧以来发生了变化:

    http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#setMotionLevel

    motion detection and motion tracking using Flash/ActionScript 和 Camera 对象中也做了很多工作,您可以找到代码示例。

    【讨论】:

    • 我想在单帧之后做什么并不重要,现在我只想要一个用于检测帧变化的处理程序:) 我尝试了 ActivityEvent,在处理程序中打印“hello”......但它仅打印一次“hello”,当相机开始录制时:(它应该以 FPS 速度打印“hello hello hello hello...”!
    • 来自您粘贴的链接:“ActivityEvent (is) 在相机开始或结束会话时调度”。这不是我需要的:(
    • 好的,那么我想你可以尝试继续使用 Event.ENTER_FRAME 事件的侦听器并设置 stage.frameRate = webcam.currentFPS。
    • 好吧,我可以使用计时器,它会是一样的......我正在寻找更准确的方法:)
    猜你喜欢
    • 2014-06-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多