确实如此:至少在我可用于开发的三台 iDevice(iPhone 4S、iPad 3、iPod touch 4G)上,相机以“模式”测光模式(也称为矩阵模式)启动。如果我随后按照 AVFoundation 文档中的描述设置一个感兴趣的曝光点并将曝光模式设置为连续,则相机将切换到点测光。
您可以自己检查一下;在willOutputSampleBuffer
调用中,获取 EXIF 数据并查看 Metering Mode:
NSDictionary* dict = (__bridge NSDictionary*) CMGetAttachment(sampleBuffer,
kCGImagePropertyExifDictionary, NULL);
...
int meterMode =
[[dict objectForKey:(id)kCGImagePropertyExifMeteringMode] integerValue];
(谷歌“EXIF MeteringMode”了解数字的含义。)
我发现将相机重置为矩阵模式(不关闭应用程序)的唯一方法是以编程方式将 poi 重置为{ 0.5,0.5 }:
CGPoint poi;
poi.x = poi.y = 0.5;
if ([inputCamera lockForConfiguration:nil]) {
inputCamera.exposurePointOfInterest = poi;
inputCamera.exposureMode = AVCaptureExposureModeContinuousAutoExposure;
[inputCamera unlockForConfiguration];
}
poi 的任何其他值都会触发点模式。