Чтение световых сенсоров iOS с ARKit - ios


1

Есть ли способ доступа к датчику окружающего света устройства iOS, используя ARKit, без использования AR вообще?

https://developer.apple.com/documentation/arkit/arlightestimate/2878308-ambientintensity

Другими словами, могу ли я получить доступ к значению "ambientIntensity" без создания сцены AR.

Источник
  •  21
  •  2
  • 9 мар 2020 2020-03-09 03:19:45

2 ответа

1

Вам не нужен ARSCNView но вам нужно иметь запущенную ARSession https://developer.apple.com/documentation/arkit/arsession

После того, как вы настроите эту настройку, вы можете вызвать currentFrame которая даст вам ARFrame которого есть свойство lightEstimate которое содержит оценку ambientIntensity.

2

См. Документы для ARLightEstimate.ambientIntensity:

Это значение основано на внутренней компенсации экспозиции устройства камеры

Другими словами, если вы хотите использовать камеру устройства для оценки локальных условий освещения и не используете ARKit иначе, вам может быть лучше использовать API-интерфейсы камеры. (Во-первых, эти API-интерфейсы доступны на всех устройствах iOS 11 и нескольких более ранних версиях iOS, а не на крутых требованиях к оборудованию/аппаратной части ARKit.)

Быстрый тур по тому, что вам нужно сделать:

  1. Настройте AVCaptureSession и выберите AVCaptureDevice камеру AVCaptureDevice. Возможно, вам может понадобиться подключить вывод видео/фото (который в вашем случае будет в основном не использован).
  2. Запустите сеанс захвата.
  3. Используйте KVO для контроля свойств экспозиции, температуры и/или баланса белого на AVCaptureDevice.

Вы можете найти (более старый, ObjC) код, охватывающий все это (и многое другое, поэтому вам нужно будет извлечь нужные вам части) в примере кода Apple AVCamManual.

  • 9 мар 2020 2020-03-09 03:19:45