我是iOS开发的新手。我正在尝试构建一个带有火炬和最大变焦打开的实时视频输入的应用程序。此应用程序将用于从物理部件扫描小型2D数据矩阵条形码。我正在使用的代码如下:
if ([input.device lockForConfiguration:nil]) {
CGFloat zoomFactor = input.device.activeFormat.videoMaxZoomFactor;
[input.device rampToVideoZoomFactor:zoomFactor withRate:4.0];
[input.device unlockForConfiguration];
}
由于某种原因,这根本不起作用。当我尝试调试锁定工作时,它会通过缩放代码运行,但实际上没有在应用程序中发生。
有任何建议吗?
答案 0 :(得分:0)
我发现以下内容对我有用:
dispatch_async(self.sessionQueue, ^{
NSError *error = nil;
if ([input.device lockForConfiguration:&error])
{
[input.device rampToVideoZoomFactor:2 withRate:1];
[input.device unlockForConfiguration];
}
else
{
NSLog(@"%@", error);
}
});
但是从上面的代码中,我无法分辨出什么"设备"实际上是(它是从你的AVCaptureSession获得的有源设备吗?)。我认为您需要提供更多背景信息。