有没有人能够在用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;