Я могу использовать AVCaptureDevice
как background
. contents
из SCNScene
.И это работает, но есть одна проблема с этим.Я хотел бы использовать видео формат, который имеет разрешение 1920x1080 и 60 FPS
.Но я четко вижу, что используется другой формат, это 30 FPS
.Я настраиваю используемое устройство перед его применением к background
, но каким-то образом SCNScene
меняет его.SceneView
само по себе работает в 60 FPS
, но предварительный просмотр камеры - это отдельная история.Можно ли как-то заставить SCNScene
использовать выбранный мной формат видео?Я знаю, что мог бы просто добавить слой с предварительным просмотром камеры под SceneView
, но у меня есть причины, почему этот подход не работает должным образом, поэтому мне нужно использовать это свойство background
od scene
.
Образецпроект находится здесь: https://www.dropbox.com/s/b820wxlg8voya58/SampleApp.zip?dl=1
В терминале вы можете четко видеть, что после запуска SceneView активный формат для устройства меняется:
Selected format is:
<AVCaptureDeviceFormat: 0x282d58d00 'vide'/'420v' 1280x 720, { 3- 60 fps}, HRSI:4096x2304, fov:58.632, supports vis, max zoom:120.00 (upscales @2.91), AF System:2, ISO:23.0-736.0, SS:0.000013-0.333333>
2018-10-10 14:47:35.009890+0200 SampleApp[6799:1110910] [SceneKit] Error: Could not get pixel buffer (CVPixelBufferRef)
Format after 3 seconds is:
<AVCaptureDeviceFormat: 0x282d58fb0 'vide'/'420v' 1920x1080, { 3- 30 fps}, HRSI:4096x2304, fov:58.632, supports vis, max zoom:16.00 (upscales @1.94), AF System:2, ISO:23.0-736.0, SS:0.000013-0.333333>