-exposureMode
プロパティ onがあるのは事実ですが、それAVCaptureDevice
はモード (オフ/自動/連続) を設定するためのものであり、実際の f-stop、SS、または ISO ではありません。「露出」制御を提供するカメラ アプリはすべて、後処理によってそれを行うようです。
ただし、フレームワークにはこれを行うための文書化されていない API があるようです。( class-dumpを介して) の完全なヘッダーをAVCaptureDevice.h
確認し、次のメソッドに注意してください。
- (void)setManualExposureSupportEnabled:(BOOL)arg1;
- (BOOL)isManualExposureSupportEnabled;
- (void)setExposureGain:(float)arg1;
- (float)exposureGain;
- (void)setExposureDuration:(struct { long long x1; int x2; unsigned int x3; long long x4; })arg1;
- (struct { long long x1; int x2; unsigned int x3; long long x4; })exposureDuration;
- (void)setExposureMode:(int)arg1;
- (int)exposureMode;
- (BOOL)isExposureModeSupported:(int)arg1;
私の推測でgain
は、同等の f ストップ (固定絞り) であり、duration
シャッター スピードです。これらはiPhone 5の低照度ブーストモードに使用されているのだろうか。
を使用otool
して、シンボルをつなぎ合わせてみることもできます。exposureMode
手動制御を有効にするための新しい定数がある可能性が高く、exposureDuration
フラグもあるようです。これらを呼び出すときは、必ず new を使用し、互換性を確認するため-isExposureModeSupported:
にも呼び出してください。-respondsToSelector:
いつものように、プライベート API の使用は Apple に嫌われており、App Store からの拒否の原因となっています。アプリバイナリの静的分析のみを行うと確信しているため、rot13文字列などを使用-performSelector:
または使用して呼び出しを非表示にするなど、これを回避する方法があるかもしれません。obc_msgsend