Używam AVCaptureVideoPreviewLayer
do przesyłania wideo na żywo i stosowania cieniowania openGL
w czasie rzeczywistym. Podczas korzystania z przedniej kamery wideo jest odtwarzane z lustrem, chcę je odtworzyć z lustrem przed zastosowaniem modułu cieniującego.AVCaptureVideoPreviewLayer Przedni aparat odwraca (unmirror) pixelbuffer przed przejściem do modułu cieniującego OpenGL
Czy ktoś może w tym pomóc?
Dodano: Kod do przełączania do przedniej kamery:
-(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];
}
}
można podać więcej szczegółów, jak, fragment kodu, w którym przełączasz kamery? I co się dzieje, gdy wrócisz do tylnej kamery? czy wciąż jest odzwierciedleniem? –
Cześć Fahri, dodałem kod, aby przełączyć się do przedniej kamery. Problem polega na tym, że wideo z przedniego aparatu ma odzwierciedlenie, co jest dobre dla trybu portretowego, ale kiedy obracam kamerę, wideo jest odwrócone i staje do góry nogami. na przykład. twarz osoby obraca się o 180 *. –
W moim wcześniejszym komentarzu, przez obracanie kamery, mam na myśli przejście do trybu poziomego. –