2013-06-28 11 views
7

Sto usando AVCaptureVideoPreviewLayer per passare il video dal vivo e applicare gli ombreggiatori openGL in tempo reale. Se si utilizza la fotocamera frontale, il video viene specchiato, voglio annullarlo a specchio prima di applicare lo shader.AVCaptureVideoPreviewLayer fotocamera frontale capovolge il mirrorbuffer prima di passare a opengl shader

Qualcuno può aiutarci?

Aggiunto: codice per il passaggio a fotocamera anteriore:

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

Potete fornire ulteriori dettagli, come, snippet di codice in cui si stanno commutando le telecamere? E cosa succede quando torni alla telecamera posteriore? è ancora speculare? –

+0

Ciao Fahri, ho aggiunto il codice per passare alla fotocamera frontale. Il problema è che il video della fotocamera frontale viene specchiato, che va bene per la modalità verticale, ma quando ruoto la fotocamera, il video viene capovolto e capovolto. per esempio. la faccia di una persona ruota di 180 *. –

+0

Nel mio precedente commento, ruotando la fotocamera, intendo il passaggio alla modalità orizzontale. –

risposta

4

Se si dispone già di un livello di anteprima, devi solo aggiornare la connessione:

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

Ho provato ad aggiungere questa linea di codice durante la creazione della sessione, ma poi la fotocamera frontale viene girata anche nel livello di anteprima. E non voglio quell'effetto, voglio solo che il risultato non si verifichi più. Così ho provato ad aggiungere questa linea di codice quando si passa alla fotocamera frontale, ma non ha alcun effetto. Potete aiutarmi su questa questione se l'hai usato con successo? – CarmenA

Problemi correlati