2010-12-28 6 views
1

私はAVFoundationを使って自動的に写真を撮りますが、写真は暗くなります。背面のカメラはiPhone 4でフラッシュを使用しても構いませんが、前面のカメラは基本的に写真の中のオブジェクトの最もかすかな輪郭のある黒い四角です。AVFoundation使用不可能になる暗い画像

私は両方のカメラのために、次のセットを持っているが、違いを作るようには見えません。

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"); 
    } 

任意のアイデア?

答えて

1

フロントフェイスカメラは、ホワイトバランスを調整するのにしばらく時間がかかります。 KVOにはisAdjustingWhiteBalanceデバイスプロパティが必要な場合があり、プロパティがNOからYESになった後にのみキャプチャをトリガし、初めてNOに戻ります。

+0

おかげでそれを修正するために、これは正しい方向のようです。 – redbeard

+0

@postmechanicalこの問題をどのように解決したかの例を教えてください。私のiPhone 6ではまったく同じ問題に直面しているので、解決方法はわかりません。 – Sebastien

0

キャプチャする前にAVCaptureStillImageOutputを作成したので、この問題も発生しました。しかし、自動セットアップにはある程度の時間が必要です。

だから私はAVCaptureSession作成で一度AVCaptureStillImageOutputを作成

関連する問題