2013-06-28 24 views
7

Tôi đang sử dụng AVCaptureVideoPreviewLayer để chuyển video trực tiếp và áp dụng openGL shaders trong thời gian thực. Khi sử dụng camera trước, video được nhân đôi, tôi muốn bỏ gương trước khi áp dụng đổ bóng.AVCaptureVideoPreviewLayer trước máy ảnh lật (unmirror) các pixelbuffer trước khi đi qua để opengl shader

Có ai có thể trợ giúp ở đó không?

Added: mã cho chuyển sang camera phía trước:

-(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

Bạn có thể cung cấp thêm thông tin chi tiết, như thế nào, đoạn mã nơi bạn đang chuyển đổi máy ảnh? Và, điều gì đang xảy ra khi bạn quay lại camera phía sau? nó vẫn còn được nhân đôi? –

+0

Hi Fahri, đã thêm mã để chuyển sang camera trước. Vấn đề là, video của camera phía trước được nhân đôi, điều này tốt cho chế độ chân dung, nhưng khi tôi xoay máy ảnh, video bị lật và bị lộn ngược. ví dụ. khuôn mặt của một người quay 180 *. –

+0

Trong bình luận trước đó của tôi, bằng cách xoay máy ảnh, tôi có nghĩa là thay đổi chế độ phong cảnh. –

Trả lời

4

Nếu bạn đã có một lớp xem trước, bạn chỉ cần cập nhật các kết nối:

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

Tôi đã cố gắng thêm dòng mã này khi tạo phiên, nhưng sau đó máy ảnh mặt trước cũng được lật trong lớp xem trước. Và tôi không muốn hiệu ứng đó, tôi chỉ muốn kết quả không lật nữa. Vì vậy, tôi đã cố gắng thêm dòng mã này khi chuyển sang máy ảnh phía trước, nhưng nó không có hiệu lực. Bạn có thể giúp tôi về vấn đề này nếu bạn sử dụng thành công nó? – CarmenA

Các vấn đề liên quan