Метод переключения входов камеры не работает в обратном порядке
У меня есть слой предварительного просмотра видео, который показывает видео с заданного входа. Я хочу, чтобы пользователь мог переключать камеру с помощью одной кнопки. Кнопка, которую я создал, переключит камеру с исходной камеры, обращенной назад, на камеру, обращенную вперед, но не работает в обратном направлении.
Вот метод:
- (IBAction)CameraToggleButtonPressed:(id)sender {
if (_captureSession) {
NSLog(@"Toggle camera");
NSError *error;
AVCaptureInput *videoInput = [self videoInput];
AVCaptureInput *newVideoInput;
AVCaptureDevicePosition position = [[VideoInputDevice device] position];
[_captureSession beginConfiguration];
[_captureSession removeInput:_videoInput];
[_captureSession removeInput:_audioInput];
[_captureSession removeOutput:_movieOutput];
[_captureSession removeOutput:_stillImageOutput];
//Get new input
AVCaptureDevice *newCamera = nil;
if(((AVCaptureDeviceInput*)videoInput).device.position == AVCaptureDevicePositionBack)
{
newCamera = [self cameraWithPosition:AVCaptureDevicePositionFront];
}
else
{
newCamera = [self cameraWithPosition:AVCaptureDevicePositionBack];
}
newVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:newCamera error:&error];
if(!newVideoInput || error)
{
NSLog(@"Error creating capture device input: %@", error.localizedDescription);
}
else
{
[self.captureSession addInput:newVideoInput];
[self.captureSession addInput:self.audioInput];
[self.captureSession addOutput:self.movieOutput];
[self.captureSession addOutput:self.stillImageOutput];
}
[_captureSession commitConfiguration];
}
}
Почему кнопка не работает наоборот?