0
modifiedMetadataObjectMetadataObjectによって返される問題は、previewLayerのサイズ変更に使用する場合にのみ不安定です(サイズは2つのサイズの間で大きくなります)。 previewLayerを作成するための目的C transformedMetadataObjectForMetadataObjectプレビューレイヤーのサイズを変更するときに不安定なサイズにします
for(AVMetadataObject *metadataObject in metadataObjects) {
if([metadataObject.type isEqualToString:AVMetadataObjectTypeFace]) {
// Take an image of the face and pass to CoreImage for detection
AVMetadataObject *metadataObjectR=[previewLayer transformedMetadataObjectForMetadataObject:metadataObject];
previewLayer.bounds = CGRectMake(previewLayer.bounds.origin.x,previewLayer.bounds.origin.y, metadataObjectR.bounds.size.width,metadataObjectR.bounds.size.height);
コード(previewViewLayerがCALayerのある)
[captureSession addInput:vInput];
[captureSession setSessionPreset:AVCaptureSessionPresetPhoto];
previewViewLayer = [self.view layer];
[previewViewLayer setBackgroundColor:(__bridge CGColorRef _Nullable)([UIColor blackColor])];
previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:captureSession];
[previewLayer setFrame:[previewViewLayer bounds]];
[previewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
[previewViewLayer addSublayer:previewLayer];