如何在as3中停止相机捕捉,flex?

时间:2013-07-23 15:41:26

标签: actionscript-3 flash flex

我正在开始使用flashbuilder进行flex工作,而我正在测试相机。现在我可以让相机显示但是当我尝试使用停止按钮来停止相机拍摄时,ti不起作用这就是我试过的。

    var video:Video;
    public function startCamera(muteCam:Boolean=false):void{
        video = new Video(); // this will work after the import is done

        var camera:Camera=Camera.getCamera();
        if(muteCam){
        video.attachCamera(camera);

        vidHolder.addChild(video);
        }else{
            video.attachCamera(null);
            if(contains(video))
            vidHolder.removeChild(video);
            //camera=null;

        }


    }

这些是我的组件

<s:Button x="116" y="28" label="Start" click="startCamera(true)"/>
    <s:VideoDisplay id="vidHolder" x="31" y="87" width="200" height="300"
                    />
    <s:Button id="stop" x="208" y="28" label="Stop" click="startCamera(false)"/>

1 个答案:

答案 0 :(得分:1)

每次调用startCamera时,您都在创建一个新的视频对象。所以你试图删除一个实际上不在舞台上的视频。

而不是:

video = new Video();

使用此:

if ( !video ) {
    video = new Video();
}

只有尚未创建Video对象时才会创建它(!object计算对象以查看它是否为null或布尔值设置为false。object == null将以相同的方式评估这个案例)