2013-04-01 40 views
1

我使用Brad Larson的精彩GPUImage framework,我在某個時間點有一個AVCaptureDevice實例(來自GPUImageVideoCamera類的屬性inputCamera),我想要讀取實際的曝光值從拍攝照片之前,例如在創建的元數據信息中,但僅在拍攝照片之後。有沒有辦法讓這個價值生活?拍照前訪問設備的相機曝光值

回答

4

設置一個AVCaptureSession,那麼你可以從實時的曝光數據:

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection{ 

    lightSamp++; 
    if(lightSamp>30){ 
     CFDictionaryRef metadataDictionary = CMGetAttachment(sampleBuffer, kCGImagePropertyExifDictionary, NULL); 
     NSDictionary *metaDict= (__bridge NSDictionary*)metadataDictionary; 

     NSLog(@"exposure %@",metaDict); 
     lightSamp=0; 
    } 
} 

}

+0

從我個人理解,這只是可能從AVCaptureVideoDataOutput實例,而不是一個AVCaptureStillImageOutput,是那對嗎? –

+1

是的,我認爲這是正確的。但是,您可以在視頻之間切換並仍在AVCaptureSession中捕獲。儘管如此,它會引入一個短暫的滯後。 – Sten

+0

感謝您的幫助Sten! –