Есть ли поддержка фронтальной камеры с ARKit?
Как мы можем получить доступ к изображениям с передней камеры с помощью ARCamera
или же ARSCNView
и можно ли записать ARSCNView
просто как запись камеры?
3 ответа
Относительно фронтальной камеры: короче говоря, нет.
ARKit предлагает два основных вида опыта AR:
World Tracking (
ARWorldTrackingConfiguration
), используя камеру, обращенную назад, где пользователь "смотрит" через устройство на расширенный обзор окружающего мира. (Есть такжеAROrientationTrackingConfiguration
, которая является уменьшенной версией отслеживания мира, поэтому она по-прежнему использует только камеру, обращенную назад.)Отслеживание лица (
ARFaceTrackingConfiguration
), поддерживается только с фронтальной камерой TrueDepth на iPhone X, где пользователь видит расширенный вид себя в виде фронтальной камеры. (Как отмечает @TawaNicolas, у Apple есть пример кода здесь... который, пока iPhone X фактически не станет доступным, вы можете читать, но не запускать.)
В дополнение к требованиям к оборудованию, отслеживание лица и отслеживание мира в основном являются ортогональными наборами функций. Таким образом, даже если есть способ использовать фронтальную камеру (только на iPhone X), он не дает вам опыта, эквивалентного тому, что вы получаете с обратной камерой в ARKit.
Что касается записи видео в AR опыт: вы можете использовать ReplayKit в приложении ARKit так же, как в любом другом приложении.
Если вы хотите записать только канал с камеры, для этого нет высокоуровневого API, но теоретически вы можете добиться некоторого успеха, используя пиксельные буферы, которые вы получаете в каждом из них. ARFrame
в AVAssetWriter
,
Насколько я знаю, ARKit с фронтальной камерой поддерживается только для iPhone X.
Если вы хотите получить доступ к камерам UIKit или AVFoundation, вы по-прежнему можете, но отдельно от ARSCNView. Например, я загружаю UIKit's UIImagePickerController
из IBAction
и это немного неловко, но это работает для моих целей (загрузка / создание изображений и видео ресурсов).