首页 文章

AVCaptureVideoPreviewLayer能够使用Quicktime以横向模式录制

提问于
浏览
10

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

videoConnection?.videoOrientation = self.orientation()

但是,由于应用程序本身未注册横向模式,因此您无法通过横向时间快速记录屏幕(它保持纵向)(快速时间>文件>记录影片>选择设备名称)

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

4 回答

  • 0

    您可以为 UIDevice 设置调用 beginGeneratingDeviceOrientationNotifications 并订阅 UIDeviceOrientationDidChangeNotification . 之后,您可以在代码中使用 UIDevice 的orientation属性 .

    有关详细信息,请参阅Apple documentation for UIDevice课程 .

  • 0

    尝试为 UIDevice 设置调用 beginGeneratingDeviceOrientationNotifications 并订阅 UIDeviceOrientationDidChangeNotification .

    使用 UIDevice 的比例 .

  • 0

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

    有关详细信息,请查看此Apple文档UIDevice Class Reference .

    以下是Obj-C && Swift中的示例实现

  • 3

    这就是我最终做的!利用明确的答案 .

    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
        }
    

相关问题