CameraView
Камера устройства — живой предпросмотр плюс съёмка фото — как
Presentable: открой её на весь экран, сделай Router.push или встрой
среди детей экрана как узел живого предпросмотра. takePhoto() возвращает
File (хэндл буфера хоста), поэтому снимок можно сразу отправить в
текстуру (Texture2D.load(file)), на загрузку (FormData) или в шторку шеринга (share(file)).
Опционален по хосту — проверяй через CameraView.isSupported.
Обзор
const camera = CameraView() // задняя камера по умолчанию
await camera.open() // спрашивает разрешение, показывает предпросмотр
const photo = await camera.takePhoto()
camera.close()
share(photo, 'My shot')API
CameraView.isSupported: boolean // статик — есть ли у этого хоста камера?
CameraView(options?: { facingMode?: 'front' | 'back' }) // по умолчанию 'back'
camera.open(opts?: { transition }): Promise<void> // запросить разрешение, показать предпросмотр
camera.setFacingMode(mode: 'front' | 'back'): Promise<void> // переключить, пока предпросмотр живой
camera.takePhoto(): Promise<File> // фото, закодированное хостом
camera.close(): void // закрыть, освободить камеруopen()следует контракту «подготовить, затем показать» (какARScene/QRScanner): текущий пункт назначения остаётся видимым, пока запрашивается разрешение на камеру; переключение — иtransition, если ты его передал — происходит, когда камера готова. Промис отклоняется, если в разрешении отказано, у хоста нет камеры или его опередила другая навигация — обработай это.- Камера — полноценный
NativeViewповерх зарегистрированного хостом вью"camera":Router.push(camera)работает, и она встраивается как узел лэйаута — живой видоискатель внутри твоего экрана, размером по своим стилям.isSupported— ровно «зарегистрировал ли этот хост это вью». - Каждый
CameraView()— отдельный экземпляр, но камера устройства — одна сессия: не держи открытыми две сразу.
Note
жизненный цикл — камера остаётся занятой до close(). Всегда закрывай при уходе с экрана
(onClose), иначе камера (и её системный индикатор) останется включённой.
Смотрите также
- QRScanner — сканирующая разновидность камеры.
- Файлы и шеринг —
share()снятого фото;openFilePickerкак не-камерный способ получить изображение. - Сеть — хэндл
Fileи загрузка черезFormData.