使用AVCaptureDevice作为SCNScene背景内容

在SceneKit:WWCD2017 (44:19) 的新内容中 ,我们现在可以使用AVCaptureDevice作为SCNScene背景内容。

演示文稿的片段:

 let captureDevice: AVCaptureDevice = ... scene.background.contents = captureDevice 

但是以下代码

 let captureDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back)! scene.background.contents = captureDevice 

产生错误:

 [SceneKit] Error: Cannot get pixel buffer (CVPixelBufferRef) 

我还试图创建并启动AVCaptureSession然后使用该设备,但它给出了相同的结果。

这可能是个问题?

编辑

这个错误似乎在iOS 11.2中得到修复


原始答案

这似乎是SceneKit中的一个错误。

如果这对您有用, ARSCNView解决方法是使用ARSCNView 。 它允许您访问所有SceneKit API,并自动将video源绘制为场景的背景。