2013-06-28 3 views
7

AVCaptureVideoPreviewLayer을 사용하여 라이브 비디오를 전달하고 실시간으로 openGL 쉐이더를 적용합니다. 전면 카메라 사용에 대한 비디오는 쉐이더를 적용하기 전에 I는 미 미러를하고자 미러링된다. AVCaptureVideoPreviewLayer 전면 카메라가 OpenGL 셰이더로 전달되기 전에 픽셀 버퍼를 뒤집습니다.

사람이 도와 줄 수

?

추가 : 전면 카메라로 전환을위한 코드 : 이미 미리 층이있는 경우

-(void)showFrontCamera{ 
    NSLog(@"inside showFrontCamera"); 
    [captureSession removeInput:videoInput]; 
    // Grab the front-facing camera 
    AVCaptureDevice *backFacingCamera = nil; 
    NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; 
    for (AVCaptureDevice *device in devices) { 
     if ([device position] == AVCaptureDevicePositionFront) { 
      backFacingCamera = device; 
     } 
    } 
    // Add the video input 
    NSError *error = nil; 
    videoInput = [[[AVCaptureDeviceInput alloc] initWithDevice:backFacingCamera error:&error] autorelease]; 

    if ([captureSession canAddInput:videoInput]) { 
     [captureSession addInput:videoInput]; 
    } 

} 
+0

당신 같은 더 많은 정보를 제공 할 수 있습니다, 카메라를 전환하는 코드 스 니펫? 후방 카메라로 다시 전환하면 어떻게됩니까? 여전히 거울입니까? –

+0

안녕하세요, Fahri 님, 앞면 카메라로 전환하는 코드를 추가했습니다. 문제는 프론트 카메라의 비디오가 미러링되어 인물 사진 모드에 적합하지만 카메라를 돌릴 때 비디오가 뒤집어지고 거꾸로됩니다. 예. 사람의 얼굴이 180 *만큼 회전합니다. –

+0

이전의 코멘트에서 카메라를 돌리면 가로 모드로 바뀌는 것을 의미합니다. –

답변

4

, 당신은 단지 연결을 업데이트 할 수 있습니다

[[previewLayer connection] setAutomaticallyAdjustsVideoMirroring:NO]; 
[[previewLayer connection] setVideoMirrored:NO]; 
+1

나는 세션을 생성하지만, 그 전면 카메라는뿐만 아니라 미리보기 층에 이성을 상실 할 때이 코드 줄을 추가했습니다. 그리고 나는 그 효과를 원하지 않습니다, 나는 단지 결과가 더 이상 뒤집기를 원하지 않습니다. 그래서 앞면 카메라로 전환 할 때이 코드 줄을 추가하려고했지만 효과가 없습니다. 이 문제에 대해 성공적으로 사용했다면 나를 도울 수 있습니까? – CarmenA

관련 문제