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);
我正在使用 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 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);