У меня есть приложение для захвата изображений, построенное на основе AVCapture. Традиционный Pinch Zoom всегда хорошо работал для устройства с одной камерой, но с появлением новых двойных камер в iOS11 приложение не может увеличить масштаб до уровня собственного приложения камеры.
Я взглянул на последнюю документацию, и есть новый метод, названный dualCameraSwitchOverVideoZoomFactor, но я не уверен, как реализовать это вокруг того, что у меня уже есть, так как, кажется, есть необходимость в некоторых дополнительных параметрах для поддержки этого , Документация кажется довольно расплывчатой, и я не видел примеров двойного увеличения камеры, которые бы помогли мне.
Вот код, который реализует текущую функцию масштабирования пинча для одной камеры.
- (IBAction)PinchGesture01:(UIPinchGestureRecognizer *)sender {
NSLog(@"Pinch Zoom Factor: %f", sender.scale);
if (self.videoCamera.running) {
[self.videoCamera zoomPinchGestureRecognizerAction:sender];
}
}
Это вызывает следующий класс камеры, который масштабирует изображение в слое предварительного просмотра.
- (void) zoomPinchGestureRecognizerAction: (UIPinchGestureRecognizer *) sender {
static CGFloat initialVideoZoomFactor = 0;
NSLog(@"Pinch Zoom Activated!");
// Find the current capture device.
AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithDeviceType: AVCaptureDeviceTypeBuiltInWideAngleCamera
mediaType: AVMediaTypeVideo
position: self.defaultAVCaptureDevicePosition];
if (sender.state == UIGestureRecognizerStateBegan) {
initialVideoZoomFactor = captureDevice.videoZoomFactor;
} else {
CGFloat scale = MIN(MAX(1, initialVideoZoomFactor * sender.scale), 4);
[CATransaction begin];
[CATransaction setAnimationDuration: 0.01];
customPreviewLayer.affineTransform = CGAffineTransformMakeScale(scale, scale);
[CATransaction commit];
if ([captureDevice lockForConfiguration: nil] == YES) {
captureDevice.videoZoomFactor = scale;
[captureDevice unlockForConfiguration];
}
}
}
Может ли кто-нибудь помочь мне понять, как изменить класс камеры выше, чтобы иметь возможность использовать функцию двойной камеры в последних iPhone? Заранее благодарим за помощь.