的我想這段代碼來設置相機的變焦水平:AVCaptureDevice videoZoomFactor總是超出範圍
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([videoDevice lockForConfiguration:nil]) {
float newzoom=1.3;
videoDevice.videoZoomFactor = newzoom;
[videoDevice unlockForConfiguration];
}
此代碼不會不IOS 7(它在ios一起9)的作品,它總是會引起異常:
Terminating app due to uncaught exception 'NSRangeException', reason: 'videoZoomFactor out of range'
我找不到信息,但ios 7中的縮放範圍似乎是「從1到2」。但是我試圖爲浮點newzoom設置的每個值都會導致異常......我如何才能在Ios 7中設置videoZoomFactor?
編輯
我已經決定隱藏變焦按鈕時,設備不支持變焦。所以這是我使用的代碼:
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
float max=videoDevice.activeFormat.videoMaxZoomFactor;
float min=MIN(videoDevice.activeFormat.videoMaxZoomFactor, 4.0f);
if (max==1 && min==1) {
[ZoomButton setHidden:YES];
}
如果max和min等於1意味着設備不支持這種縮放。它似乎工作...有更好的方法來做這個檢查?我找不到文檔中支持的設備列表...
我已經編輯我的問題,首先我的問題是不兼容的硬件問題 – user31929