Перейти к содержанию

Вопросы

В программе использую вспышку

Camera.TorchMode := TTorchMode.ModeOn;
После этого до камеры невозможно достучаться через IFMXCameraService.TakePhoto без предварительного включения затем выключения компонента.

т.е. при любом обращении к свойствам компонента камера остается занятой для IFMXCameraService (даже при обращении к AvailableCaptureSettings)

procedure TfrmMain.btnMakePhotoTap(Sender: TObject; const [Ref] Point: TPointF);var  xService: IFMXCameraService;  xParams: TParamsPhotoQuery;  xCtrl: TControl;  xCamera: TCameraComponent;  xCamSettings: TArray<TVideoCaptureSetting>;  xMaxResH, xMaxResW: Integer;begin   //контрол для вызова IFMXCameraService.TakePhoto(AControl, AParam)   xCtrl := TControl.Create(SELF);   xCamera := TCameraComponent.Create(SELF);   xCamSettings := xCamera.AvailableCaptureSettings;   //получаем максимальное разрешение   xMaxResH := xCamSettings[Low(xCamSettings)].Height;   xMaxResW := xCamSettings[Low(xCamSettings)].Width;   ////////////////////////////////////////////////   // БЕЗ ЭТОГО xService.TakePhoto НЕ ЗАПУСКАЕТСЯ   ///////////////////////////////////////////////   xCamera.Active := True;   //<- Именно сначала doStart   xCamera.Active := False;  //   ////////////////////////////   FreeAndNil(xCamera);  if TPlatformServices.Current.SupportsPlatformService(IFMXCameraService,    xService) then  begin    xParams.Editable := False;  //ИНАЧЕ НЕ СОХРАНЯЕТ В АЛЬБОМ!!!    xParams.NeedSaveToAlbum := True;    xParams.RequiredResolution := TSize.Create(xMaxResH,xMaxResW );    xService.TakePhoto(xCtrl, xParams);  end  else    ShowMessage('This device does not support the camera service');    FreeAndNil(xCtrl);end;
Как можно освободить камеру без щелканья объективом?

Задача сделать фото максимального качества в галерею.

(Фактически это стандартный экшен "сделать фото" - но он не работает после игры с фанариком)

Буду раз за любые комментарии по коду.

Отредактировал pvmmpv

Поделиться сообщением


Ссылка на сообщение

Рекомендуемые сообщения

Ответы на этот вопрос пока отсутствуют

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От kolyalyan
      У меня следующая проблема, когда подключаюсь к камере телефона, то кадры отображаются с ужасной задержкой, нааамного медленнее чем в сторонних приложениях работающих с камерой.

      Для подключения к камере использую следующий код:
       
      procedure TForm1.FormShow(Sender: TObject); var CDM : TCaptureDeviceManager; VC : TVideoCaptureDevice; begin CDM := TCaptureDeviceManager.Current; VC := CDM.DefaultVideoCaptureDevice; if (VC <> nil) then VC.OnSampleBufferReady := VideoBufferReady; VC.StartCapture; end; Для загрузки кадров в TImage этот:
       
      procedure TForml.VideoBufferReady(Sender: TObject; const ATime: int64); var VCD : TVideoCaptureDevice; begin VCD := Sender as TVideoCaptureDevice; VCD.SampleBufferToBitmap(Image1.Bitmap, True); end; Ещё раз повторюсь, что всё работает, но чрезвычайно медленно. Пробовал стандартный компонент TCameraComponent, но он работает также или даже ещё медленнее.
    • От neo
      Народ а как поменять разрешение получаемой картинки через CameraComponent?
      по умолчанию получаю очень маленькую картинку... хотелось бы сделать её на весь экран =(
      добавляю сюда CameraComponent1SampleBufferReady
      CameraComponent1.Quality := TVideoCaptureQuality.highQuality; image.Width := image.Bitmap.Width; image.Height := image.Bitmap.Height;
      но ничего не меняется =(
      походу это можно делать только в XE8 а у меня XE7
      и использовать нужно CaptureSetting
    • От Pax Beach
      Здравствуйте!
      Не смог понять, как на лету настраивать четкость изображения с TCameraComponent.
       
      FPS — 2-3 кадра в секунду меня устраивает, но четкость камера сама не настраивает, как это делает нативная камера смартфона.
      В основном страдает задняя камера, фронтальная почему-то нормальную четкость держит.
      Может знаете, как регулировать четкость фотографии (свойство, метод)?
       
    • От AlexG
      Здравствуйте!
      Хотел бы опубликовать у Вас задачу для выполнения по теме http://fire-monkey.ru/topic/497-izmenenie-parametrov-kamery/

      Как правильно я должен это сделать?
      Какие условия для публикации задачи?
      Кого в качестве исполнителя, если такой найдется, я могу выбрать?

      Заранее благодарен за ответ!
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...