使用AVCaptureDevice作为SCNScene背景内容

时间:2017-09-12 09:50:47

标签: ios avfoundation scenekit

SceneKit: What's New presentation at 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,然后使用该设备,但它会得到相同的结果。

这里可能存在什么问题?

1 个答案:

答案 0 :(得分:2)

修改

此错误似乎已在iOS 11.2中修复

原始回答

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

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