少なくとも私が開発に利用できる 3 つの iDevice (iPhone 4S、iPad 3、iPod touch 4G) では、カメラは「パターン」測光モード (別名マトリックス モード) で起動します。次に、AVFoundation のドキュメントで説明されているように、関心のある露出ポイントを設定し、露出モードを連続に設定すると、カメラはスポット測光に切り替わります。
これは自分で確認できます。呼び出しでwillOutputSampleBuffer
、EXIF データを取得し、メータリング モードを確認します。
NSDictionary* dict = (__bridge NSDictionary*) CMGetAttachment(sampleBuffer,
kCGImagePropertyExifDictionary, NULL);
...
int meterMode =
[[dict objectForKey:(id)kCGImagePropertyExifMeteringMode] integerValue];
(数字の意味については、Google の「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 のその他の値は、スポット モードをトリガーします。