0

我正在flex mobile上构建一个可以在前后摄像头之间切换的android视频应用程序。我编写了一个在两个摄像头之间切换的函数,但它只执行一次,当我再次尝试按下按钮再次切换摄像头时它不起作用,它保留了前置摄像头。这是我写的代码:

受保护的函数 changeCamera(event:MouseEvent):void{

            for(var i:int=0;i<Camera.names.length;i++){
                var compareCam:Camera;
                compareCam=Camera.getCamera(Camera.names[i]);
                if(compareCam.name!=camera.name){
                    camera=Camera.getCamera(compareCam.name);
                    video.attachCamera(camera);

                }

            }

任何人都可以帮助我吗?

4

1 回答 1

1

此代码中的逻辑存在一个错误,您在设置相机后继续迭代。所以它总是会设置数组中的最后一个摄像机。它缺少一条break指令,请检查下面的更新代码:

protected function changeCamera(event:MouseEvent):void{

    for(var i:int=0;i<Camera.names.length;i++){
       var compareCam:Camera;
       compareCam=Camera.getCamera(Camera.names[i]);
       if(compareCam.name!=camera.name){
          camera=Camera.getCamera(compareCam.name);
          video.attachCamera(camera);
          //stop the loop after set the camera.
          break;

        }

 }
于 2013-05-21T18:09:19.357 回答