【问题标题】:AVCaptureVideoPreviewLayer with the ability to record in landscape mode with QuicktimeAVCaptureVideoPreviewLayer 能够使用 Quicktime 以横向模式录制
【发布时间】:2015-06-30 02:22:12
【问题描述】:

所以我目前有一个相机应用程序。我有它,所以它只能在纵向模式下工作,但你仍然可以在横向模式下录制视频和拍照。我使用以下代码来处理:

videoConnection?.videoOrientation = self.orientation()

但是,由于应用程序本身没有注册横向模式,因此您无法通过 quicktime 以横向方式录制屏幕(它保持纵向)(quicktime>文件>录制电影>选择设备名称)

有没有办法解决这个问题?我不需要实际更改有关设备的任何内容以支持横向,我只希望能够以这种方式快速记录它,但 UI 中的任何内容都不需要更改。

【问题讨论】:

    标签: ios objective-c swift avfoundation


    【解决方案1】:

    您可以将beginGeneratingDeviceOrientationNotifications 设置为UIDevice 并订阅UIDeviceOrientationDidChangeNotification。之后,您可以在代码中使用 UIDevice 的方向属性。

    详情请参考Apple documentation for UIDevice类。

    【讨论】:

    【解决方案2】:

    尝试将呼叫 beginGeneratingDeviceOrientationNotifications 设置为 UIDevice 并将其订阅到 UIDeviceOrientationDidChangeNotification

    使用UIDevice的定位比例。

    【讨论】:

      【解决方案3】:

      你需要做的是检测方向的变化:

      查看此苹果文档UIDevice Class Reference,了解更多详情。

      这是一个示例实现 Obj-C && Swift

      【讨论】:

        【解决方案4】:

        这就是我最终做的!利用标记的答案。

        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
            }
        

        【讨论】:

          猜你喜欢
          • 2014-02-11
          • 2013-07-06
          • 1970-01-01
          • 1970-01-01
          • 2012-02-14
          • 2023-03-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多