android - 从 Delphi Firemonkey XE5 应用程序在 Android 上拍照

标签 android delphi firemonkey delphi-xe5

有没有人能够在用 Delphi Firemonkey XE5 编写的应用程序中使用 Android 上的相机拍照?视频捕捉怎么样?

这被认为是框架中的错误,或者只是缺少有关它的文档。

谁能说出为什么下面的代码不起作用/无法从 Android 上的相机检索任何图像?

将 TCameraComponent 和 TImage 组件放在窗体上,但没有任何反应。

procedure TCameraComponentForm.OnCreate(Sender: TObject);
begin
  CameraComponent1.Kind := FMX.Media.TCameraKind.ckFrontCamera;
  CameraComponent1.FlashMode := FMX.Media.TFlashMode.fmFlashOff;
  CameraComponent1.Active := True;
end;

procedure TCameraComponentForm.CameraComponent1SampleBufferReady(
  Sender: TObject; const ATime: Int64);
begin
  CameraComponent1.SampleBufferToBitmap(Image1.Bitmap, True);
  Image1.Width := Image1.Bitmap.Width;
  Image1.Height := Image1.Bitmap.Height;
end;

权限设置正确。

最佳答案

这段代码工作正常:

procedure TfrmPrincipal.SampleBufferSync;
begin
  cmcPrincipal.SampleBufferToBitmap(imgFoto.Bitmap, true);
end;

procedure TfrmPrincipal.cmcPrincipalSampleBufferReady(Sender: TObject;
  const ATime: Int64);
begin
  TThread.Synchronize(TThread.CurrentThread, SampleBufferSync);
//  CameraComponent1.SampleBufferToBitmap(imgFoto.Bitmap, True);
//  imgFoto.Width := imgFoto.Bitmap.Width;
//  imgFoto.Height := imgFoto.Bitmap.Height;
end;

procedure TfrmPrincipal.FormShow(Sender: TObject);
begin
  cmcPrincipal.Kind := FMX.Media.TCameraKind.ckBackCamera;
  try
    cmcPrincipal.FlashMode := FMX.Media.TFlashMode.fmFlashOff;
  except

  end;
  cmcPrincipal.Active := True;
end;

关于android - 从 Delphi Firemonkey XE5 应用程序在 Android 上拍照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220526/

相关文章:

Delphi - 使用 GetPropValue() 获取属性值

android - Gradle不工作android工作室

android - 蓝牙连接通知

android - 测量短信发送速度

c++ - 堆积面积计算

delphi - 如何在 FM2 中从 TMediaPlayerControl 截屏?

java - 背景淡出并转到另一个页面

delphi - 访问单选按钮会引发异常

delphi - dcc32:*。cfg中的环境变量

delphi - 在 FireMonkey 中绘制像素的最快方法