Tad*_*eik 9 swift arkit realitykit
我在 Xcode 中有一个 RealityKit 项目,我想将ARView. 我考虑过 ReplayKit,但那是用于屏幕录制,我只想ARView用它的相机输入来录制。我考虑过 AFathi 的开源项目 ARVideoKit,但它不支持 RealityKit ......关于不同渲染路径的东西。我找到了一篇 Medium 文章,它描述了如何在 ARKit 应用程序中实现录音功能,但问题是它需要以下方法:func renderer(_ renderer: SCNSceneRenderer)RealityKit 中没有该方法,因为它是一个专门的 SceneKit 方法。
我的回答假设您熟悉使用录制视频和音频AVAssetWriter。
有一个捕获的帧作为 ARKitsession(_:didUpdate:)方法的一部分提供。返回的对象ARFrame有一个CVPixelBuffer命名的capturedFrame. 像处理常规视频录制会话一样处理该帧,只不过不是在方法中捕获captureOutput(_:didOutput:from:),而是在此处捕获。captureOutput(_:didOutput:from:)如果您也打算从麦克风录制音频,您可能仍然需要一种音频方法。
就我而言,我将捕获的帧转换为MTLTexture,并使用 Metal 处理我的视频帧,然后将它们传递到AVAssetWriter. 我想在录制之前在相机框架上画画。不幸的是,这样做非常复杂,恐怕不是一个快速而简短的复制+粘贴答案。希望将您指向capturedFrameARKit 返回的对象作为您的起点。
有关如何使用以下内容录制视频的示例AVAssetWriter:
https://programmersought.com/article/80131041234/; jsessionid=38CBA6743FB3C440DE9D2B25A6854B28
如果您想在将 3D 模型编码为视频之前将其绘制到捕获源中,您还需要精通 Metal: https ://developer.apple.com/documentation/metalkit/