Objective c iOS 6设备和iPhone 4(iOS7)的摄像头变焦功能不可用
我正在开发条形码阅读器应用程序,在其中我想通过点击相机来缩放相机视图。我使用了以下方法来缩放相机视图,但它不适用于iOS6和iPhone4iOS7设备。请任何人在这方面帮助我:Objective c iOS 6设备和iPhone 4(iOS7)的摄像头变焦功能不可用,objective-c,iphone,ios7,barcode-scanner,avcapturedevice,Objective C,Iphone,Ios7,Barcode Scanner,Avcapturedevice,我正在开发条形码阅读器应用程序,在其中我想通过点击相机来缩放相机视图。我使用了以下方法来缩放相机视图,但它不适用于iOS6和iPhone4iOS7设备。请任何人在这方面帮助我: if ([self.device respondsToSelector:@selector(setActiveFormat:)] && [self.device.activeFormat respondsToSelector:@selector(videoMaxZoomFactor)] &
if ([self.device respondsToSelector:@selector(setActiveFormat:)] &&
[self.device.activeFormat respondsToSelector:@selector(videoMaxZoomFactor)] &&
[self.device respondsToSelector:@selector(setVideoZoomFactor:)]){
float maxZoom = 0;
if ([self.device.activeFormat respondsToSelector:@selector(videoZoomFactorUpscaleThreshold)]){
maxZoom = self.device.activeFormat.videoZoomFactorUpscaleThreshold;
} else {
maxZoom = self.device.activeFormat.videoMaxZoomFactor;
}
float maxZoomTotal = self.device.activeFormat.videoMaxZoomFactor;
// maxZoom =2.0;
// maxZoomTotal = maxZoomTotal +2;
if ([self.device respondsToSelector:@selector(setVideoZoomFactor:)] && maxZoomTotal > 1.1){
videoZoomSupported = true;
if (param_ZoomLevel1 != 0 && param_ZoomLevel2 != 0){
if (param_ZoomLevel1 > maxZoomTotal * 100){
param_ZoomLevel1 = (int)(maxZoomTotal * 100);
}
if (param_ZoomLevel2 > maxZoomTotal * 100){
param_ZoomLevel2 = (int)(maxZoomTotal * 100);
}
firstZoom = 0.01 * param_ZoomLevel1;
secondZoom = 0.01 * param_ZoomLevel2;
} else {
if (maxZoomTotal > 2){
if (maxZoom > 1.0 && maxZoom <= 2.0){
firstZoom = maxZoom;
secondZoom = maxZoom * 2;
} else
if (maxZoom > 2.0){
firstZoom = 2.0;
secondZoom = 4.0;
}
}
}
} else {
}
activeFormat在iOS 7.0及更高版本中可用。在iOS 6中,您的else空语句将被激发。关于iPhone4,您需要询问您的设备是否可以进行缩放。它可能不行。你能告诉我怎么才能让它变焦吗?NSLog@Formats支持:%@、[self.device.formats description];在if语句之前添加它,并在iPhone4中运行,必须告诉您支持的格式。更多信息请点击此处: