ios - isVideoOrientationSupported 总是返回 NO AVCaptureConnection

标签 ios avcapturesession avcapture

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

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);

关于ios - isVideoOrientationSupported 总是返回 NO AVCaptureConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165925/

相关文章:

ios - 在双摄像头设备中设置自定义曝光的可能解决方案是什么?

iphone - iPhone 3gs 的 AVCaptureSession 仅获取一帧

Swift 3 - AVCapture 自定义相机 View

ios - 在 iOS 相机中停止相机捕获 session

ios - UICollectionView 分页偏移量和间距

objective-c - 接口(interface)中的变量声明问题

ios - 强制 Objective-C 对象使用某个委托(delegate)

ios - 如何使用 AVCaptureSession 实现像苹果一样的相机应用程序?

ios - 为什么VideoDataOutput的availableVideoCodecTypes为空?

ios - 将 UnsafeMutablePointer<UInt8> 转换为字符串时堆缓冲区溢出