使用AVCaptureDevice作为SCNScene背景内容

问题描述:

SceneKit: What's New presentation at WWCD2017(44:19)期间,有人说我们现在可以使用AVCaptureDevice作为SCNScene的背景内容。使用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,然后使用设备,但它给出了相同的结果。

这里可能存在什么问题?

+0

请注意,该错误似乎在iOS 11.2中修复 - 我编辑了我原来的答案。 – mnuages

编辑

这个错误似乎是固定在IOS 11.2


原来的答复

这似乎是在SceneKit的错误。

如果这对您有用,解决方法是使用ARSCNView。它使您可以访问所有SceneKit API,并自动将视频馈送作为场景的背景进行绘制。