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];
}
}
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? –
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 *. –
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. –