Я очень стараюсь эмулировать основную функциональность созданного при закрытых дверях приложение. К настоящему времени я стал застрявшим на 'касании, чтобы сфокусировать' функцию.
У меня есть UIView, из которого я собираю события UITouch, когда единственный палец касается на UIView. Этот в соответствии с методом называют, но фокус камеры и воздействие неизменны.
-(void)handleFocus:(UITouch*)touch
{
if( [camera lockForConfiguration:nil] )
{
CGPoint location = [touch locationInView:cameraView];
if( [camera isFocusPointOfInterestSupported] )
camera.focusPointOfInterest = location;
if( [camera isExposurePointOfInterestSupported] )
camera.exposurePointOfInterest = location;
[camera unlockForConfiguration];
[cameraView animFocus:location];
}
}
'камерой' является мой AVCaptureDevice, и это - неноль. Кто-то может, возможно, сказать мне, где я иду не так, как надо?
Подсказки и шиканье все приветствие.
M.
Этот фрагмент может вам помочь... Есть CamDemo, предоставленный apple, который позволяет вам фокусироваться, изменять экспозицию при нажатии, устанавливать вспышку, менять камеры местами и многое другое, он эмулирует приложение камеры довольно хорошо, не уверен, что вы сможете найти его, поскольку он был частью wwdc, но если вы оставите адрес электронной почты в комментариях, я могу отправить вам пример кода...
- (void) focusAtPoint:(CGPoint)point
{
AVCaptureDevice *device = [[self videoInput] device];
if ([device isFocusPointOfInterestSupported] && [device isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {
NSError *error;
if ([device lockForConfiguration:&error]) {
[device setFocusPointOfInterest:point];
[device setFocusMode:AVCaptureFocusModeAutoFocus];
[device unlockForConfiguration];
} else {
id delegate = [self delegate];
if ([delegate respondsToSelector:@selector(acquiringDeviceLockFailedWithError:)]) {
[delegate acquiringDeviceLockFailedWithError:error];
}
}
}
}