AVCaptureVideoPreviewLayer 能够使用 Quicktime 在横向模式下进行录制
AVCaptureVideoPreviewLayer with the ability to record in landscape mode with Quicktime
所以我目前有一个相机应用程序。我有它,所以它只能在纵向模式下使用,但您仍然可以在横向模式下录制视频和拍照。我使用以下代码来处理:
videoConnection?.videoOrientation = self.orientation()
但是,由于该应用程序本身没有注册横向模式,因此您无法通过 quicktime 横向录制屏幕(它保持纵向)(quicktime>文件>录制电影>选择设备名称)
有办法解决这个问题吗?我实际上不需要更改有关设备的任何内容以支持横向,我只希望能够以快速方式记录它,但 UI 中的任何内容都不需要更改。
您可以为 UIDevice
设置呼叫 beginGeneratingDeviceOrientationNotifications
并订阅 UIDeviceOrientationDidChangeNotification
。之后,您可以在代码中使用方向 属性 of UIDevice
。
参考 Apple documentation for UIDevice class 了解详情。
尝试为 UIDevice
设置调用 beginGeneratingDeviceOrientationNotifications
并将其订阅到 UIDeviceOrientationDidChangeNotification
。
使用 UIDevice
的定位比例。
您需要做的是检测方向的变化:
查看此 apple 文档 UIDevice Class Reference,了解更多详细信息。
这是一个示例实现
&&
Swift
这就是我最终做的!利用标记的答案。
func orientationChanged() {
var orient = UIDevice.currentDevice().orientation
if orient == UIDeviceOrientation.Portrait {
print("PORT")
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.Portrait
} else if orient == UIDeviceOrientation.LandscapeLeft {
print("OR ARE YOU CRASHING")
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.LandscapeRight
} else if orient == UIDeviceOrientation.LandscapeRight {
print("WHY YOU CRASHING")
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.LandscapeLeft
} else if orient == UIDeviceOrientation.PortraitUpsideDown {
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.PortraitUpsideDown
}
所以我目前有一个相机应用程序。我有它,所以它只能在纵向模式下使用,但您仍然可以在横向模式下录制视频和拍照。我使用以下代码来处理:
videoConnection?.videoOrientation = self.orientation()
但是,由于该应用程序本身没有注册横向模式,因此您无法通过 quicktime 横向录制屏幕(它保持纵向)(quicktime>文件>录制电影>选择设备名称)
有办法解决这个问题吗?我实际上不需要更改有关设备的任何内容以支持横向,我只希望能够以快速方式记录它,但 UI 中的任何内容都不需要更改。
您可以为 UIDevice
设置呼叫 beginGeneratingDeviceOrientationNotifications
并订阅 UIDeviceOrientationDidChangeNotification
。之后,您可以在代码中使用方向 属性 of UIDevice
。
参考 Apple documentation for UIDevice class 了解详情。
尝试为 UIDevice
设置调用 beginGeneratingDeviceOrientationNotifications
并将其订阅到 UIDeviceOrientationDidChangeNotification
。
使用 UIDevice
的定位比例。
您需要做的是检测方向的变化:
查看此 apple 文档 UIDevice Class Reference,了解更多详细信息。
这是一个示例实现
这就是我最终做的!利用标记的答案。
func orientationChanged() {
var orient = UIDevice.currentDevice().orientation
if orient == UIDeviceOrientation.Portrait {
print("PORT")
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.Portrait
} else if orient == UIDeviceOrientation.LandscapeLeft {
print("OR ARE YOU CRASHING")
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.LandscapeRight
} else if orient == UIDeviceOrientation.LandscapeRight {
print("WHY YOU CRASHING")
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.LandscapeLeft
} else if orient == UIDeviceOrientation.PortraitUpsideDown {
UIApplication.sharedApplication().statusBarOrientation = UIInterfaceOrientation.PortraitUpsideDown
}