2014-01-19 9 views
8

Hat jemand Fotos von der Kamera auf Android aus der App in Delphi FireMonkey XE5 fotografieren können? Wie wäre es mit der Videoaufnahme?Aufnehmen von Bildern auf Android von Delphi Firemonkey XE5 App

Es wird davon ausgegangen, dass dies entweder ein Fehler in einem Framework oder einfach etwas mit fehlenden Dokumentationen dazu ist.

Kann jemand sagen, warum der Code unten funktioniert nicht/ein beliebiges Bild von einer Kamera auf Android abrufen?

Hat eine TCameraComponent in einem Formular und eine TImage-Komponente ebenfalls gelöscht, und nichts passiert.

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; 

Berechtigungen sind richtig eingestellt.

+0

Jetzt ist, warum das eine nach unten gestimmt Frage? Ist es verboten zu fragen, ob die Leute etwas tun, nur um zu wissen, ob es überhaupt möglich ist, oder sollte ich immer etwas Code in eine Frage einfügen? Weil für die Kamera und den Code darüber, habe ich bereits gestern einen Thread geöffnet, aber keine Antworten bekommen, so will ich jetzt wissen, ob es überhaupt möglich ist? http://stackoverflow.com/questions/21200177/taking-pictues-tcameracomponent-on-android-with-delphi-firemonkey-xe5-not-work –

+0

Wie oben erwähnt, wurde die konkrete Programmierfrage zu einem verknüpften Thread gestellt über. Da dort kein konkreter Programmkommentar, keine Antwort oder Meinung geteilt wurde, habe ich eine nichtkonkrete, aber dennoch programmierende Frage gestellt, von der ich glaube, dass es nützlich ist, die Antwort zu wissen. Aber was Sie sagen wollen, ist, dass Stack Overflow nicht für grundlegende Dinge geeignet ist (auch wenn das Kamera-Ding überhaupt nicht grundlegend ist, besonders wenn es ein ernsthaftes Problem oder Bug in einem Framework ist) oder für Anfänger sag es so. Manchmal bekomme ich das Gefühl .../ –

+2

@Just Marc: Ich denke, dass Leute oft nur Fragen stellen, die keinen Code enthalten. Vielleicht möchten Sie in EMBAs Delphi/Android Newsgroup nachsehen. Es enthält einen Post über Kamera Probleme, die diese Qualität Central Post http://qc.embarcadero.com/wc/qcmain.aspx?d=118764 und dies erwähnt: http://edn.embarcadero.com/article/43468 – MartynA

Antwort

2

Dieser Code funktioniert:

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;