Использование 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 а затем использовать устройство, но оно дает тот же результат.

Что может быть проблемой здесь?

1 ответ

Решение

редактировать

Эта ошибка, кажется, исправлена ​​в iOS 11.2


Оригинальный ответ

это похоже на ошибку в SceneKit.

Если это работает для вас, обходной путь будет использовать ARSCNView, Он дает вам доступ ко всем API-интерфейсам SceneKit и автоматически рисует видеопоток в качестве фона сцены.

Другие вопросы по тегам