1
更新されました!objective-c metadataOutputRectOfInterestForRect戻り値{{0、0}、{0、0}}
AVCaptureMetadataOutput
rectOfInterestを使用するために、矩形の変換にmetadataOutputRectOfInterestForRect
を使用しています。
NSError *error;
AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:captureDevice error:&error];
if (!input) {
NSLog(@"%@", [error localizedDescription]);
return NO;
}
_captureSession = [[AVCaptureSession alloc] init];
[_captureSession addInput:input];
_videoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:_captureSession];
[_videoPreviewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
[_videoPreviewLayer setFrame:_viewPreview.bounds];
[_viewPreview.layer addSublayer:_videoPreviewLayer];
[_viewPreview bringSubviewToFront:_lblGuide];
[_viewPreview bringSubviewToFront:_vFocus];
CGRect visibleMetadataOutputRect = [_videoPreviewLayer metadataOutputRectOfInterestForRect:CGRectMake(0, 0, 100, 100)];
NSLog(@"--- log convert: %@", NSStringFromCGRect(visibleMetadataOutputRect));
NSLog(@"--- log _videoPreviewLayer: %@", NSStringFromCGRect(_videoPreviewLayer.bounds));
NSLog(@"--- log _viewPreview: %@", NSStringFromCGRect(_viewPreview.bounds));
_captureMetadataOutput = [[AVCaptureMetadataOutput alloc] init];
[_captureSession addOutput:_captureMetadataOutput];
_dispatchQueue = dispatch_queue_create("myQueue", NULL);
[_captureMetadataOutput setMetadataObjectsDelegate:self queue:_dispatchQueue];
[_captureMetadataOutput setMetadataObjectTypes:[NSArray arrayWithObject:AVMetadataObjectTypeQRCode]];
[_captureMetadataOutput setRectOfInterest:visibleMetadataOutputRect];
[_captureSession startRunning];
return YES;
とのNSLog resut:
[5082:1768978] --- log convert: {{0, 0}, {0, 0}}
[5082:1768978] --- log _videoPreviewLayer: {{0, 0}, {320, 468}}
[5082:1768978] --- log _viewPreview: {{0, 0}, {320, 468}}
はそれを解決するために私を助けてくださいCGRect
に変換するときしかし、それは常に0
はここに私のコードです返します。
あなたは '' '_viewPreview.bounds'''と' '' _videoPreviewLayer.bounds'''のログを教えてください。これらのビューを設定した後、可視範囲を設定する必要があります。 –
@BenAvery私はより多くのログを更新しました。ありがとうございました! –