迅捷 – 用ARKIT拍摄视频
你好社区,
我尝试用Swift 4和即将推出的ARKit-Framework构建一个应用程序,但我陷入困境.我需要使用框架视频或至少是UIImage序列,但我不知道如何. 这就是我尝试过的: 在ARKit中,您有一个跟踪您的世界的会话.此会话有一个captureImage实例,您可以在其中获取当前图像.所以我创建了一个Timer,它将captureImage每0.1秒附加到List.这对我有用但如果我通过点击“开始”按钮启动计时器,相机开始滞后.它不是关于我猜的定时器,因为如果我通过点击“停止”按钮使定时器无效,相机再次流畅. 有没有办法解决滞后甚至更好的方法? 谢谢
我能够使用
ReplayKit来做到这一点.
看看ReplayKit是什么样的 在您的iOS设备上,转到设置 – >控制中心 – >自定义控件.将“屏幕录制”移动到“包含”部分,然后向上滑动以调出控制中心.您现在应该看到圆形屏幕录制图标,您会注意到当您按下它时,iOS会开始录制您的屏幕.点击蓝色条将结束录制并将视频保存到照片. 使用ReplayKit,您可以让您的应用程序调用屏幕录制器并捕获您的ARKit内容. 如何 要开始录制: RPScreenRecorder.shared().startRecording { error in // Handle error,if any } 要停止录制: RPScreenRecorder.shared().stopRecording(handler: { (previewVc,error) in // Do things }) 完成录制后,.stopRecording会为您提供一个可选的RPPreviewViewController,即
因此,在我们的示例中,如果它不是nil,则可以显示previewVc RPScreenRecorder.shared().stopRecording(handler: { (previewVc,error) in if let previewVc = previewVc { previewVc.delegate = self self.present(previewVc,animated: true,completion: nil) } }) 您可以直接从previewVc编辑和保存视频,但您可能想让自己(或某人)成为RPPreviewViewControllerDelegate,因此您可以在完成后轻松关闭预览视图. extension MyViewController: RPPreviewViewControllerDelegate { func previewControllerDidFinish(_ previewController: RPPreviewViewController) { // Called when the preview vc is ready to be dismissed } } 注意事项 您会注意到 从录音中排除视图 单独的UIWindow技巧有效.我能够制作一个覆盖窗口,我有一个记录按钮和一个计时器,这些都没有记录下来. let overlayWindow = UIWindow(frame: view.frame) let recordButton = UIButton( ... ) overlayWindow.backgroundColor = UIColor.clear 默认情况下将隐藏UIWindow.因此,当您想要显示控件时,必须将isHidden设置为false. 祝你好运! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |