2014-01-19 1 views
8

Кто-нибудь мог снимать с камеры на Android из приложения, написанного на Delphi Firemonkey XE5? Как насчет видеозахвата?Фотосъемка на Android от приложения Delphi Firemonkey XE5

Это считается либо ошибкой в ​​рамках, либо просто отсутствием документации.

Может ли кто-нибудь сказать, почему нижеприведенный код не работает/не извлекает изображения с камеры на 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://stackoverflow.com/questions/21200177/taking-pictues-tcameracomponent-on-android-with-delphi-firemonkey-xe5-not-work –

+0

Как указывалось выше, конкретный вопрос программирования был задан по потоку, связанному с потоком выше. Поскольку не было никакого конкретного комментария к программированию, ответа или мнения, разделяемого там, я поставил небезонный, но все же вопрос программирования, который, на мой взгляд, полезен, чтобы знать ответ. Но если вы пытаетесь сказать, что Stack Overflow не для базового материала (даже если объект камеры не является базовым, особенно если он считается серьезной проблемой или ошибкой в ​​рамках) или для начинающих , скажем так. Иногда это ощущение, что я об этом ...:/ –

+2

@ Просто Марк: Я думаю, что люди часто просто проходят мимо вопросов, которые не содержат кода. Возможно, вам захочется взглянуть на группу новостей EMFI 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; 

 Смежные вопросы

  • Нет связанных вопросов^_^