即使打开闪光灯,AVCaptureOutput 也会拍摄暗照片

Posted

技术标签:

【中文标题】即使打开闪光灯,AVCaptureOutput 也会拍摄暗照片【英文标题】:AVCaptureOutput takes dark picture even with flash on 【发布时间】:2011-06-11 00:48:31 【问题描述】:

我提出了 AVFoundation 和 ImageIO 的实现来处理我的应用程序中的照片拍摄。但是,我有一个问题。即使闪光灯熄灭,我拍摄的图像也总是很暗。这是我使用的代码:

        [[self currentCaptureOutput] captureStillImageAsynchronouslyFromConnection:[[self currentCaptureOutput].connections lastObject]
                                        completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) 

                                            [[[blockSelf currentPreviewLayer] session] stopRunning];
                                            if (!error) 
                                                NSData *data            = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
                                                CGImageSourceRef source = CGImageSourceCreateWithData((CFDataRef) data, NULL);

                                                if (source) 

                                                    UIImage *image = [blockSelf imageWithSource:source];
                                                    [blockSelf updateWithCapturedImage:image];
                                                    CFRelease(source);

                                                

                                            

                                        ];

有什么东西会导致拍摄的图像不包括闪光灯吗?

【问题讨论】:

【参考方案1】:

我发现如果 AVCaptureSession 是在此调用之前立即设置的,我有时会得到深色图像。自动曝光和白平衡设置可能需要一段时间才能自行调整。

解决方案是设置 AVCaptureSession,然后等到 AVCaptureDevice 的 adjustingExposureadjustingWhiteBalance 属性都为 NO(使用 KVO 观察这些),然后再调用 -[AVCaptureStillImageOutput captureStillImageAsynchronouslyFromConnection: completionHandler:]

【讨论】:

你是怎么做到的?如果我同时观察到adjustingExposure 和adjustingWhiteBalance - 我应该什么时候调用captureStillImageAsynchronouslyFromConnection?直接来自observeValueForKeyPath? 你找到方法了吗?因为我现在在 iPhone 6 上遇到了完全相同的问题。

以上是关于即使打开闪光灯,AVCaptureOutput 也会拍摄暗照片的主要内容,如果未能解决你的问题,请参考以下文章

在后台运行安卓手电筒

打开闪光灯的代码

在Android中打开相机闪光灯LED? [复制]

使用相机闪光灯作为手电筒的应用程序使用 Eclipse 不工作

打开/关闭闪光灯

无法让安卓闪光灯小部件打开闪光灯