LeCodesdocs

CameraViewer

Камера устройства как живой предпросмотр плюс съёмка фото. Все методы статические — сессия камеры одна, экземпляров нет. takePhoto() возвращает File (хэндл буфера хоста), поэтому снимок можно сразу отправить в текстуру (Texture2D.load(file)), на загрузку (FormData) или в шторку шеринга (share(file)).

Обзор

TypeScript
await CameraViewer.open()                 // спрашивает разрешение, запускает предпросмотр задней камеры
const photo = await CameraViewer.takePhoto()
CameraViewer.close()

share(photo, 'My shot')

API

TypeScript
CameraViewer.open(facingMode?: 'front' | 'back'): Promise<void>   // по умолчанию 'back'
CameraViewer.setFacingMode(facingMode: 'front' | 'back'): void    // переключить, пока открыто
CameraViewer.takePhoto(): Promise<File>                           // фото, закодированное хостом
CameraViewer.close(): void                                        // остановить предпросмотр, освободить камеру

open() сначала запрашивает разрешение на камеру (тот же запрос уровня движка, что использует QRScanner), затем запускает живой предпросмотр. Промис отклоняется, если в разрешении отказано или камера не может стартовать — обработай это.

Note

жизненный цикл — камера остаётся занятой до close(). Всегда закрывай при уходе с экрана (onClose), иначе камера (и её системный индикатор) останется включённой.

Смотрите также

  • Файлы и шерингshare() снятого фото; openFilePicker как не-камерный способ получить изображение.
  • Сеть — хэндл File и загрузка через FormData.