我创建了一个捕获实时视频流的应用程序,使用 OpenGL ES 对视频流进行一些处理,并将其显示在 UIView 的屏幕上
本质上数据流是: AVCaptureSession -> AVCaptureDeviceInput -> AVCaptureVideoDataOutput -> gl buffers -> 绘制到 UIView
我没有使用 AVCaptureVideoPreviewLayer 来显示内容。
当我使用此系统纵向显示视频时,它按预期工作,视频与显示器的方向相同。
但是,我的应用旨在横向使用。在 superview 的 shouldAutorotateToInterfaceOrientation 方法中,我只允许 UIInterfaceOrientationLandscapeLeft 和 UIInterfaceOrientationLandscapeRight。
我的问题是视频流被旋转了。手机横向,视频流旋转 90 度。我希望视频流的方向相同。
我不明白为什么视频流会旋转,我猜这是为了补偿横向模式,但我不知道如何防止这种旋转。有什么想法吗?
谢谢
迈克
感谢 VinceBurn 的回复。
最终我尝试了this post中的方法
并确定了 willRotateToInterfaceOrientation:duration 的示例代码
最佳答案
不知道这是否可行,我只是在这里猜测。
如果没有简单的解决方案,可以尝试在 UIView 层上应用 90° 旋转变换。 (我不喜欢这个想法,但可以工作)
关于ios - 如何防止视频流横向旋转 - AVCaptureSession 和 OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992631/