我正在灵活移动设备上构建一个Android视频应用程序,可以在前后摄像头之间切换。我写了一个在两个摄像头之间切换的功能,但它只做了一次当我再次按下按钮切换时相机再次无法工作,它保留了前置摄像头。这是我写的代码:
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);
}
}
任何人都可以帮助我吗?
答案 0 :(得分: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;
}
}