2014-01-19 28 views
8

AndroidでカメラからDelphi Firemonkey 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; 

権限が正しく設定されています。

+0

さて、なぜそのダウン投票の質問はありますか? 人々がそれが可能であるかどうかを知るために何かをやっているのかどうか、私はいつも質問にいくつかのコードを入れなければならないのかどうか尋ねることは禁じられていますか? カメラとコードについては、昨日既にスレッドを開いていますが、返信がないので、今でも可能かどうか知りたいですか? http://tackoverflow.com/questions/21200177/taking-pictues-tcameracomponent-on-android-with-delphi-firemonkey-xe5-not-work –

+0

上記のように、具体的なプログラミングの質問は、リンクされたスレッド上記。具体的なプログラミングコメントがなかったので、そこでは答えも意見も共有されていましたが、私は具体的ではありませんがまだプログラミングの質問を出しました。 しかし、スタックオーバーフローは基本的なものではない(カメラのことはまったく基本的ではないが、特にフレームワークの重大な問題やバグだと思われる)場合や初心者の場合、そう言いなさい。時々それは私がそれについて感じる感じです:/ –

+2

@ジャストマーク:私は人々はしばしばコードを含まない質問を渡すと思います。 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; 
関連する問題