2010-12-28 7 views
1

Ich benutze AVFoundation um ein Bild automatisch aufzunehmen, aber die Bilder kommen sehr dunkel raus. Die Rückkamera ist in Ordnung, wenn Sie den Blitz auf einem iPhone 4 verwenden, aber die Frontkamera ist im Grunde ein schwarzes Quadrat mit nur den geringsten Umriss der Objekte im Bild.AVFoundation Bilder kommen unbrauchbar dunkel

Ich habe für beide Kameras folgende Einstellungen, aber es scheint nicht, einen Unterschied zu machen:

if (device.hasFlash) { 
     NSLog(@"device.hasFlash turning flash mode on"); 
     [device lockForConfiguration:&deviceError]; 
     device.flashMode = AVCaptureFlashModeOn; 
     [device unlockForConfiguration]; 
    } 
    else { 
     NSLog(@"Device does not have Flash"); 
    } 

    if ([device isFocusModeSupported:AVCaptureFocusModeContinuousAutoFocus]) { 
     NSLog(@"Enabling ContinuousAutoFocus"); 
     [device lockForConfiguration:&deviceError]; 
     device.focusMode = AVCaptureFocusModeContinuousAutoFocus; 
     [device unlockForConfiguration]; 
    } 
    else { 
     NSLog(@"Device does not support ContinuousAutoFocus"); 
    } 

    if ([device isExposureModeSupported:AVCaptureExposureModeContinuousAutoExposure]) { 
     NSLog(@"Enabling ContinuousAutoExposure"); 
     [device lockForConfiguration:&deviceError]; 
     device.exposureMode = AVCaptureExposureModeContinuousAutoExposure; 
     [device unlockForConfiguration]; 
    } 
    else { 
     NSLog(@"Device does not support ContinuousAutoExposure"); 
    } 

    if ([device isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance]) { 
     NSLog(@"Enabling ContinuousAutoWhiteBalance"); 
     [device lockForConfiguration:&deviceError]; 
     device.whiteBalanceMode = AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance; 
     [device unlockForConfiguration]; 
    } 
    else { 
     NSLog(@"Device does not support ContinuousAutoWhiteBalance"); 
    } 

Irgendwelche Ideen?

Antwort

1

Die Frontkamera benötigt eine Weile, um den Weißabgleich anzupassen. Möglicherweise müssen Sie die Geräteeigenschaft isAdjustingWhiteBalance KVO zuweisen und die Erfassung erst auslösen, nachdem die Eigenschaft zum ersten Mal von NO nach YES und wieder zurück in NO geändert wurde.

+0

Dank schaffen, scheint dies die richtige Richtung zu sein. – redbeard

+0

@postmechanical Können Sie uns ein Beispiel zeigen, wie Sie das gelöst haben? Weil ich gerade das gleiche Problem auf meinem iPhone 6 habe und ich weiß nicht, wie ich es lösen soll. – Sebastien

0

Ich hatte auch dieses Problem, wie ich AVCaptureStillImageOutput vor jeder Erfassung erstellt. Aber einige Zeit ist für die automatische Einrichtung erforderlich.

Also, es zu beheben ich AVCaptureStillImageOutput einmal mit AVCaptureSession Schaffung

Verwandte Themen