2014-01-19 4 views
8

누구든지 Delphi Firemonkey XE5로 작성된 앱에서 Android 카메라로 사진을 찍을 수 있습니까? 비디오 캡쳐는 어때?Delphi에서 Android로 사진 찍기 Firemonkey XE5 app

이것은 프레임 워크의 버그이거나 설명서에 대한 설명서가 누락 된 버그로 간주됩니다.

왜 코드 울부 짖기가 작동하지 않거나 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; 

사용 권한이 올바르게 설정되었습니다.

+0

이제 왜 다운 - 투표 있는지 질문을? 사람들이 그것이 가능한지 알기 위해 무언가를 할 수 있었는지 또는 항상 질문에 코드를 넣어야하는지 묻는 것은 금지되어 있습니까? 카메라와 코드에 관해서는 어제 스레드를 이미 열었지만 응답이 없으므로 가능한지 알고 싶습니다. tickoverflow.com/questions/21200177/taking-pictues-tcameracomponent-on-android-with-delphi-firemonkey-xe5-not-work –

+0

위에서 언급했듯이 구체적인 프로그래밍 질문은 thread linked 위. 구체적인 프로그래밍 코멘트가 없었기 때문에 답변이나 의견이 거기에서 공유되었으므로 필자는 아직 구체적이지 않은 프로그래밍 질문을 던졌다. 나는 실제로 그 대답을 알기에 유용하다고 믿는다. 그러나 스택 오버플로가 기본 사항이 아닐 경우 (특히 카메라 문제가 프레임 워크에서 심각한 문제 또는 버그로 여겨지는 경우) 또는 초보자 용 , 그렇게 말하십시오. 때로는 그것이 내가 그것에 대해 느끼는 감각입니다 :/ –

+2

@ Just Marc : 사람들은 종종 코드가없는 질문을 전달한다고 생각합니다. EMBA의 delphi/android 뉴스 그룹을 살펴보고 싶을 수도 있습니다. 여기에는이 Quality Central 게시판 http://qc.embarcadero.com/wc/qcmain.aspx?d=118764 및 다음을 언급하는 카메라 문제에 관한 게시물이 포함되어 있습니다. http://edn.embarcadero.com/article/43468 – MartynA

답변

2

이 코드는 잘 작동 :

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;