我正在尝试使用相机视频输入作为SceneKit的背景来获取CVPixelBuffer。请注意我不能将ARKit用于我的项目,因为我需要前置+后置摄像头,没有世界跟踪开销。即使尝试最基本的例子:
let captureDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back)
self.scnScene.background.contents = captureDevice
导致iOS 11.2中出现以下错误:
[SceneKit]错误:无法获取像素缓冲区(CVPixelBufferRef)
每当弹出此错误时,AVCaptureVideoDataOutputSampleBufferDelegate就会停止被调用。
答案 0 :(得分:0)
由于我无法同时使用AVCaptureDevice
作为SceneKit的背景并抓住其CVPixelBuffer
,我的解决方案是将示例缓冲区渲染为MTLTexture
,然后将其应用为SceneKit的背景。在此处作为起点:
https://developer.apple.com/documentation/arkit/displaying_an_ar_experience_with_metal