iOS 6中已弃用方向定位功能。

5

看起来在iOS 6中,avcapturevideopreviewlayer的方向已经被弃用。有人知道新代码吗?这是我当前(已弃用)的代码:

[self setPreviewLayer:[[AVCaptureVideoPreviewLayer alloc] initWithSession:[self captureSession]]];
[[self previewLayer] setVideoGravity:AVLayerVideoGravityResizeAspectFill];
previewLayer.orientation = UIInterfaceOrientationLandscapeRight;

好的。没错。但是你的问题是什么?也许这个链接可以帮到你:https://dev59.com/Q2ct5IYBdhLWcg3wCJF- - NDY
3个回答

19

你查看了文档吗?只需要一行:

图层的方向。(在iOS 6.0中已弃用。改用videoOrientation (AVCaptureConnection)代替。)

因此使用:

[[AVCaptureVideoPreviewLayer connection] setVideoOrientation: AVCaptureVideoOrientationLandscapeRight];
或者
AVCaptureVideoPreviewLayer.connection.videoOrientation= AVCaptureVideoOrientationLandscapeRight;

尝试过了。在类型为“AVCaptureVideoPreviewLayer”的对象中未找到属性“videoOrientation”。 - Marsman
因为它在 AVCaptureConnection 中?所以,是 AVCaptureVideoPreviewLayerconnection 属性。 - J. Steen
我为您添加了一个示例:) 希望您不介意 @Nikolai Ruhe - Tieme
2
这个不起作用 - 它没有改变.orientation的效果一样。 - Adam
另外:UIInterfaceOrientation* 是错误的类型,虽然有时它可以工作,但是你可能会遇到例如方向180度翻转的问题。 - Adam
显示剩余2条评论

3

我尝试使用videoOrientation(AVCaptureConnection)代替已经弃用的orientation(AVCaptureVideoPreviewLayer),但是它不再旋转视频预览。

我替换了这个:

AVCaptureVideoPreviewLayer *previewLayer = ...;
previewLayer.orientation = AVCaptureVideoOrientationLandscapeRight;

有了这个:

AVCaptureVideoPreviewLayer *previewLayer = ...;
previewLayer.connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight;

但是它没有旋转视频预览。问题是在我添加和修改AVCaptureVideoPreviewLayer之前,我添加了AVCaptureDeviceInput到我的AVCaptureSession中。因此,我的AVCaptureVideoPreviewLayer的连接为空。解决方案是在将AVCaptureDeviceInput添加到我的AVCaptureSession后再添加AVCaptureVideoPreviewLayer。


0
就像@Nikolai发布的那样,使用AVCaptureVideoPreviewLayer的连接的videoOrientation属性即可。
(我再次发布这个原因是因为他的代码可能有点令人困惑,因为它看起来像connection是一个类方法。希望这个例子能让它更清楚。)
替换以下内容:
AVCaptureVideoPreviewLayer *previewLayer = ...;
previewLayer.orientation = UIInterfaceOrientationLandscapeRight;

使用:

AVCaptureVideoPreviewLayer *previewLayer = ...;
previewLayer.connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接