0

iOS開発初心者です。トーチと最大ズームをオンにして、ライブ ビデオ入力を使用してアプリケーションを構築しようとしています。このアプリは、物理部品から小さな 2D データ マトリックス バーコードをスキャンするために使用されます。私が使用しているコードは次のとおりです。

if ([input.device lockForConfiguration:nil]) {
        CGFloat zoomFactor = input.device.activeFormat.videoMaxZoomFactor;
        [input.device rampToVideoZoomFactor:zoomFactor withRate:4.0];
        [input.device unlockForConfiguration];

    }

何らかの理由でこれがまったく機能しません。ロックの動作をデバッグしようとすると、ズーム コードが実行されますが、アプリケーションでは実際には何も起こりません。

何かアドバイスはありますか?

4

1 に答える 1

0

次のようなものがうまくいくことがわかりました。

dispatch_async(self.sessionQueue, ^{
    NSError *error = nil;
    if ([input.device lockForConfiguration:&error])
    {
        [input.device rampToVideoZoomFactor:2 withRate:1];

        [input.device unlockForConfiguration];
    }
    else
    {
        NSLog(@"%@", error);
    }
});

しかし、上記のコードから、「デバイス」が実際に何であるかはわかりません (AVCaptureSession から取得したアクティブなデバイスですか?)。もう少しコンテキストを提供する必要があると思います。

于 2014-05-30T18:54:30.177 に答える