isVideoOrientationSupported always Returns 无 AVCaptureConnection

isVideoOrientationSupported always Returns NO AVCaptureConnection

我正在使用 AVCaptureMetadataOutput 来检测 iOS 上的人脸,并且我正在尝试在用户旋转他们的设备后设置视频的方向。但是,我似乎无法执行此操作,因为每次我在我的 AVCaptureMetadataOutput 拥有的唯一 AVCaptureConnection 上调用 getter isVideoOrientationSupported 时,它总是 returns 错误。我已经在每个可以想象的地方尝试了下面的代码,但它总是 returns 没有。有什么方法可以为我的元数据设置方向吗?

AVCaptureConnection *conn = [self.metadataOutput connectionWithMediaType:AVMediaTypeMetadataObject];

    NSLog(@"%@",self.metadataOutput.connections);

    if (!conn) {
        NSLog(@"NULL CONNECTION OBJ");
    }

    if ([conn isVideoOrientationSupported]) {
        NSLog(@"Supported!");
    }

    else {
        NSLog(@"Not supported");
    }

一位 Apple 工程师在 Apple 开发者论坛上为我解决了这个问题。这是 link。这是他们的回应:

If you want to translate your metadata objects' coordinate space to that of another AVCaptureOutput (such as the AVCaptureVideoDataOutput), use - (AVMetadataObject *)transformedMetadataObjectForMetadataObject:(AVMetadataObject *)metadataObject connection:(AVCaptureConnection *)connection NS_AVAILABLE_IOS(6_0); It's in AVCaptureOutput.h. If you want to translate the coordinates to the coordinate space of your video preview layer, use AVCaptureVideoPreviewLayer.h's - (AVMetadataObject *)transformedMetadataObjectForMetadataObject:(AVMetadataObject *)metadataObject NS_AVAILABLE_IOS(6_0);