1

露出ポイントで露出をロックしようとしていますが、デバイスで試してみるとうまくいかないようです。カメラアプリは画面を長押しして露出とフォーカスをロックしても動作しますが、自分のアプリで次のコード行で試してみると動作しません。構成で何かを見逃しましたか?

if ([_captureInput.device isExposureModeSupported:AVCaptureExposureModeLocked] && [_captureInput.device lockForConfiguration:NULL] && [_captureInput.device isExposurePointOfInterestSupported]) 
{
[_captureInput.device setExposurePointOfInterest:pointOfInterest];
[_captureInput.device setExposureMode:AVCaptureExposureModeLocked];
[_captureInput.device unlockForConfiguration];
}
4

1 に答える 1

1

たとえば、フラッシュ モードを変更する場合に構成をロックする方法の例は次のとおりです。

AVCaptureDevice *temp = [[[[self captureSession] inputs] lastObject] device];

if ([temp isFlashModeSupported:AVCaptureFlashModeOn]) {
        NSError *error;
        bool locked = [temp lockForConfiguration:&error];
        if (locked) {
            switch (self.flashMode.intValue) {
                case 0: // Off
                    [temp setFlashMode:AVCaptureFlashModeOff];
                    break;
                case 1: // On
                    [temp setFlashMode:AVCaptureFlashModeOn];
                    break;
                case 2: // Auto
                    [temp setFlashMode:AVCaptureFlashModeAuto];
                    break;

                default:
                    break;
            }
        } else {
            NSLog(@"Could not lock for configuration");
        }

    }

編集:これは単なる例です(ただし、機能するはずです)。キャプチャデバイスを非常に奇妙な方法で取得することがわかります。保存した場合、または別の方法で処理した場合でも機能するため、どこにも保存しないためです.

于 2012-07-31T02:19:08.830 に答える