luc*_*egh 5 avfoundation ios swift arkit iphone-x
我正在使用ARSession结合一个ARFaceTrackingConfiguration来跟踪我的脸。同时,我想从我的 iPhone X 的前置摄像头录制视频。为此我正在使用,AVCaptureSession但一旦我开始录制,就ARSession被中断了。
这是两段代码:
// Face tracking
let configuration = ARFaceTrackingConfiguration()
configuration.isLightEstimationEnabled = false
let session = ARSession()
session.run(configuration, options: [.removeExistingAnchors, .resetTracking])
// Video recording
let camera = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front)!
input = try! AVCaptureDeviceInput(device: camera)
session.addInput(input)
session.addOutput(output)
Run Code Online (Sandbox Code Playgroud)
有人知道如何同时做这两件事吗?像 Snapchat 这样的应用程序允许用户同时记录和使用 True Depth 传感器,所以我想我的要求是完全可行的。谢谢!
ARKit 运行它自己的AVCaptureSession,并且一次只能运行一个捕获会话——如果你运行一个捕获会话,你就会抢占 ARKit 的,这会阻止 ARKit 工作。
但是,ARKit 确实提供了对从其捕获会话接收到的相机像素缓冲区的访问,因此您可以通过将这些示例缓冲区提供给AVAssetWriter. (这与您从AVCaptureVideoDataOutput...录制视频时使用的工作流程基本相同……与AVCaptureMovieFileOutput.相比,这是一种较低级别的视频录制方式。)
您还可以将 ARKit 相机像素缓冲区(请参阅 参考资料ARFrame.capturedImage)提供给其他使用实时相机图像的技术,例如 Vision 框架。Apple 有一个示例代码项目演示了这种用法。
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |