Использование 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 и автоматически рисует видеопоток в качестве фона сцены.