私が苦労しているズームにはまだ問題があります。link1とlink2のコードに従って AVCaptureSession を使用して画像を取得しようとしました。
カメラのズームを実装しようとするとすぐに、思い通りに動作しないことを除いて、すべてが非常にうまく機能します。
以下のコードに見られるように、AVCaptureDevice オブジェクトで videoZoomFactor メソッドを使用しようとしています。
videoZoomFactor が効果がない理由について何か提案はありますか??
意図したとおりに AVCaptureSession を使用して、静止画像を取得するためのズームをどのように作成しますか??
- (void)addVideoInput {
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if (videoDevice) {
// SOMEHOW NOT HAVING AN EFFECT AT ALL - WHY ?????
if ([videoDevice lockForConfiguration:nil]) {
float zoomFactor = videoDevice.activeFormat.videoZoomFactorUpscaleThreshold;
[videoDevice setVideoZoomFactor:zoomFactor];
// [videoDevice setVideoZoomFactor:3];
// videoDevice.videoZoomFactor = 3;
[videoDevice unlockForConfiguration];
}
// that all works again nicely...
NSError *error;
AVCaptureDeviceInput *videoIn = [AVCaptureDeviceInput deviceInputWithDevice:videoDevice error:&error];
if (!error) {
if ([[self captureSession] canAddInput:videoIn]) {
[[self captureSession] addInput:videoIn];
}
else
NSLog(@"Couldn't add video input");
}
else
NSLog(@"Couldn't create video input");
}
else
NSLog(@"Couldn't create video capture device");
}