자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey TCameraComponent 의 버그?
2014.10.14 20:49
Delphi XE5 / FMX 에서 지원하는
TCameraComponent 를 이용하여
카메라에 접근하려고 합니다.
친절하게 예제코드가 나와있어서 시도해봤지만..
TCameraComponent 자체가 먹통? 입니다....
예제코드 그대로 받아서 실행해도 안되고..
구글링해서 시도해도 (예제코드랑 다른게 없는..) 안되네요..
핵심 코드는
procedure TForm1.CameraComponent1SampleBufferReady(Sender: TObject;
const ATime: Int64);
begin
memo1.Lines.Add('PIC');
TThread.Synchronize(TThread.CurrentThread, GetImage);
end;
procedure TForm1.GetImage;
begin
CameraComponent1.SampleBufferToBitmap(imgCameraView.Bitmap, True);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
CameraComponent1.Active := False;
CameraComponent1.Kind := FMX.Media.TCameraKind.ckBackCamera;
CameraComponent1.Active := True;
memo1.Lines.Add('ckBackCamera');
end;
이 3가지 입니다.
SpeedButton1 이 Click 되었을때
CameraComponent1 가 active 되어
CameraComponent1SampleBufferReady 이벤트가 발생되어야 하는데..
메모장에 'PIC' 이라는 string 이 찍히지 않는걸로 봐서
CameraComponent1SampleBufferReady 이벤트가 발생안되는걸로 보입니다...
버그..일까요? 아니면 뭔가 누락시킨것이 있을까요...?
Delphi 버전은'Help Release 1 for Delphi XE5 and C++ Builder XE5' 까지 Update 되어 있습니다.
Firemonkey TCameraComponent 의 버그?
2014.10.14 20:49
Delphi XE5 / FMX 에서 지원하는
TCameraComponent 를 이용하여
카메라에 접근하려고 합니다.
친절하게 예제코드가 나와있어서 시도해봤지만..
TCameraComponent 자체가 먹통? 입니다....
예제코드 그대로 받아서 실행해도 안되고..
구글링해서 시도해도 (예제코드랑 다른게 없는..) 안되네요..
핵심 코드는
procedure TForm1.CameraComponent1SampleBufferReady(Sender: TObject;
const ATime: Int64);
begin
memo1.Lines.Add('PIC');
TThread.Synchronize(TThread.CurrentThread, GetImage);
end;
procedure TForm1.GetImage;
begin
CameraComponent1.SampleBufferToBitmap(imgCameraView.Bitmap, True);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
CameraComponent1.Active := False;
CameraComponent1.Kind := FMX.Media.TCameraKind.ckBackCamera;
CameraComponent1.Active := True;
memo1.Lines.Add('ckBackCamera');
end;
이 3가지 입니다.
SpeedButton1 이 Click 되었을때
CameraComponent1 가 active 되어
CameraComponent1SampleBufferReady 이벤트가 발생되어야 하는데..
메모장에 'PIC' 이라는 string 이 찍히지 않는걸로 봐서
CameraComponent1SampleBufferReady 이벤트가 발생안되는걸로 보입니다...
버그..일까요? 아니면 뭔가 누락시킨것이 있을까요...?
Delphi 버전은
'Help Release 1 for Delphi XE5 and C++ Builder XE5' 까지 Update 되어 있습니다.
제가 경험한 바로는 버그나 코드의 누락은 아닙니다.
해당 기능은 제가 XE5 버전에서 잘 사용하던 기능입니다.(데모로 아주 많이 진행했습니다.)
델파이가 소스코드를 제공하는 장점을 이용해 TCameraComponent의 OnSampleBufferReady 또는 DoSampleBufferReady 메소드관련된 곳에서 디버깅해보시면 원인을 찾을 수 있을것이라 생각합니다.
물론 안드로이드 또는 아이폰 기기를 연결해야 합니다.