使用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
,然后使用设备,但它给出了相同的结果。
这里可能存在什么问题?
答
编辑
这个错误似乎是固定在IOS 11.2
原来的答复
这似乎是在SceneKit的错误。
如果这对您有用,解决方法是使用ARSCNView
。它使您可以访问所有SceneKit API,并自动将视频馈送作为场景的背景进行绘制。
请注意,该错误似乎在iOS 11.2中修复 - 我编辑了我原来的答案。 – mnuages