我正在使用 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 theAVCaptureVideoDataOutput
), 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/