在我的相机应用程序中,一切都工作得很好。如果用户手机上未启用纵向方向锁定,则一切正常。
但是,如果用户启用了纵向方向锁定并且它们侧向录制,则视频将以纵向模式录制,但视频内部的所有内容都是侧向录制的。
有没有办法检查是否启用了纵向锁定或以何种方式解决此问题?谢谢。
答案 0 :(得分:0)
您可以使用以下方法禁用纵向锁定:
- (NSUInteger)lockorientation
{
return UIInterfaceOrientationMaskPortrait;
}
答案 1 :(得分:0)
有几件事。您可以在视图控制器中覆盖正在使用相机的shouldAutorotate
功能,如下所示:
override func shouldAutorotate() -> Bool {
return true
}
然后,您可以在完成相机后再次将其设置为false,以便保留其设备设置。不确定这是不是最好的方法,但是是一种方式。
您可以解决此问题的另一种可能方法是始终检查设备方向。即使UI的视觉方向没有自动旋转(https://developer.apple.com/documentation/uikit/uidevice/1620053-orientation),设备仍将检测设备的物理方向。因此,以下显示了可能的设备方向,根据Apple文档(https://developer.apple.com/documentation/uikit/uideviceorientation)
enum UIDeviceOrientation : Int {
case Unknown
case Portrait // Device oriented vertically, home button on the bottom
case PortraitUpsideDown // Device oriented vertically, home button on the top
case LandscapeLeft // Device oriented horizontally, home button on the right
case LandscapeRight // Device oriented horizontally, home button on the left
case FaceUp // Device oriented flat, face up
case FaceDown // Device oriented flat, face down
}
知道那些你可以检查当前的方向是否是其中之一:
if (UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeLeft ||
UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeLeft) {
...override autorotate to true
}
这些可能会解决您的问题。