11

Apple のiOS 6.0 機能ページでは、

内蔵カメラの高度な機能を活用してください。新しい API を使用すると、フォーカス、露出、関心領域を制御できます。また、顔検出 API を使用して顔にアクセスして表示し、ハードウェア対応のビデオ安定化を利用することもできます。

このテキストはその後削除され、公開を制御するための新しいメソッドが API に見つかりません。AVCaptureDevice「露出設定」の下のクラスには、iOS 6.0 用の新しいプロパティ/メソッドはありません。API で公開する新機能がどこにあるか知っていますか?

4

5 に答える 5

23

-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

于 2012-10-17T17:30:09.933 に答える
3

リンクされたテキストを更新したようです。公開する新しい API については言及されていません。

内蔵カメラの強力な新機能を使用します。新しい API は、リアルタイムのビデオ安定化、改良された LED フラッシュ、顔の検出と表示をサポートします。キャプチャ中にドロップ フレームのレポートを取得し、新しいユーティリティを活用して、UI タッチをフォーカスおよび露出コマンドにマッピングできます。また、iPhone 5 をサポートするアプリは、低照度ブースト モードを利用できます。

iPhone 5にオプトインの低照度ブースト モードがあり、Jim Rhoades が詳しく説明しています(この開発者フォーラムの投稿では、ログインが必要です)。

于 2012-10-08T05:06:30.947 に答える
1

iOS 8.0 から、これがついに可能になりました。

Apple ドキュメントのsetExposureModeCustomWithDurationなどを参照してください。

API の使用方法について説明している記事を次に示します。

于 2014-12-15T16:24:35.610 に答える