При нажатии кнопки переключение камеры спереди и сзади в iOS

    if (_session == nil)
    {
        NSLog(@"Starting up server");

        self.isCapturing = NO;
        self.isPaused = NO;
        _currentFile = 0;
        _discont = NO;

// create capture device with video input
        _session = [[AVCaptureSession alloc] init];

        [self camaraSwitchMode];

        NSLog(@"kdhsfghdsfgs:::::%@",camaraSwitch);
        AVCaptureDeviceInput* input = [AVCaptureDeviceInput deviceInputWithDevice:camaraSwitch error:nil];
        [_session addInput:input];

        // audio input from default mic
        AVCaptureDevice* mic = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
        AVCaptureDeviceInput* micinput = [AVCaptureDeviceInput deviceInputWithDevice:mic error:nil];
        [_session addInput:micinput];

// создаем вывод для вывода YUV с самим собой в качестве делегата

    _captureQueue = dispatch_queue_create("uk.co.gdcl.cameraengine.capture", DISPATCH_QUEUE_SERIAL);
    AVCaptureVideoDataOutput* videoout = [[AVCaptureVideoDataOutput alloc] init];
    [videoout setSampleBufferDelegate:self queue:_captureQueue];
    NSDictionary* setcapSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                    [NSNumber numberWithInt:kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange], kCVPixelBufferPixelFormatTypeKey,
                                    nil];
    videoout.videoSettings = setcapSettings;
    [_session addOutput:videoout];
    _videoConnection = [videoout connectionWithMediaType:AVMediaTypeVideo];
    // find the actual dimensions used so we can set up the encoder to the same.
    NSDictionary* actual = videoout.videoSettings;
    _cy = [[actual objectForKey:@"Height"] integerValue];
    _cx = [[actual objectForKey:@"Width"] integerValue];

    AVCaptureAudioDataOutput* audioout = [[AVCaptureAudioDataOutput alloc] init];
    [audioout setSampleBufferDelegate:self queue:_captureQueue];
    [_session addOutput:audioout];
    _audioConnection = [audioout connectionWithMediaType:AVMediaTypeAudio];

// для аудио нам нужны каналы и частота дискретизации, но мы не можем получить их из audioout.audiosettings на ios, поэтому

    // we need to wait for the first sample

    // start capture and a preview layer
    [_session startRunning];

    _preview = [AVCaptureVideoPreviewLayer layerWithSession:_session];
    _preview.videoGravity = AVLayerVideoGravityResizeAspectFill;
}

передний и задний режим камеры

    - (void) camaraSwitchMode
{
    AVCaptureDevice *cameraDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

    if(_iscamaraSwitch==NO)
    {
        NSArray *videoDevices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
        AVCaptureDevice *captureDevice = nil;
        for (AVCaptureDevice *device in videoDevices)
        {
            if (device.position == AVCaptureDevicePositionFront)
            {
                captureDevice = device;
                break;
            }
        }

        cameraDevice = captureDevice;
        //CameraEngine *objCamera=[[CameraEngine alloc]init];
        camaraSwitch=cameraDevice;
        NSLog(@"%@",camaraSwitch);
        _iscamaraSwitch=YES;
    }
    else
    {
        NSArray *videoDevices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
        AVCaptureDevice *captureDevice = nil;
        for (AVCaptureDevice *device in videoDevices)
        {
            if (device.position == AVCaptureDevicePositionBack)
            {
                captureDevice = device;
                break;
            }
        }

        cameraDevice = captureDevice;
        //CameraEngine *objCamera=[[CameraEngine alloc]init];
        camaraSwitch=cameraDevice;
        NSLog(@"%@",camaraSwitch);
        _iscamaraSwitch=YES;

    }
   } 

person Arjun Sa    schedule 01.04.2014    source источник
comment
И ответ будет таким же. Так зачем публиковать это снова в другом вопросе?   -  person Totumus Maximus    schedule 01.04.2014
comment
а у меня не работает?   -  person Arjun Sa    schedule 01.04.2014
comment
пожалуйста, дайте какую-нибудь ссылку   -  person Arjun Sa    schedule 01.04.2014
comment
сначала используйте заднюю камеру и запишите видео, когда я нажму на застрявшую переднюю камеру. это моя проблема.   -  person Arjun Sa    schedule 01.04.2014
comment
Опубликуйте, что именно вы пробовали и в чем проблема, чтобы кто-то мог вам помочь. Просто размещать ссылку на другой вопрос не имеет никакого смысла.   -  person Mayur    schedule 01.04.2014