Firemonkey record Video

kuetedonald Messages postés 45 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 4 octobre 2016 - 27 nov. 2014 à 14:32
kuetedonald Messages postés 45 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 4 octobre 2016 - 11 déc. 2014 à 13:53
Bonjour,
je voudrais utiliser le Composant TcameraComponent pour Enregistrer une video provenant de ma webcam mais je suis bloquer. svp aider moi

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
27 nov. 2014 à 14:42
Bonjour,

mais je suis bloquer. svp aider moi

Bien que très bons.. les membres de ce forum ne sont, toujours pas à ce jour..., devins....


Si tu souhaites de l'aide... il va falloir expliquer en détail le souci rencontré et montrer le code que tu as écris.....

PS: pour poster du code sur le forum.. utilises LES BALISES DE CODE.
Explications disponibles ici : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

0
kuetedonald Messages postés 45 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 4 octobre 2016 3
27 nov. 2014 à 15:58
svp M. jordane45 regarder un peu le code ci-dessous
0
kuetedonald Messages postés 45 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 4 octobre 2016 3
27 nov. 2014 à 15:53
en faite j'utilise le code suivant et je voudrais ke si l'utilisateur clique sur Record ke l'on enregistre sa video en local soit en mp3 ou mp4 svp aider moi
unit uMain;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.Media,
FMX.Platform, FMX.Objects, FMX.Layouts, FMX.Memo;

type
TCameraComponentForm = class(TForm)
CameraComponent1: TCameraComponent;
btnStartCamera: TButton;
btnStopCamera: TButton;
lblCameraType: TLabel;
cbCameraFlashType: TLabel;
imgCameraView: TImage;
btnFrontCamera: TSpeedButton;
btnBackCamera: TSpeedButton;
btnOn: TSpeedButton;
btnOff: TSpeedButton;
btnAuto: TSpeedButton;
Capture: TSpeedButton;
SaveDialog1: TSaveDialog;
RecordButton: TSpeedButton;
procedure btnStartCameraClick(Sender: TObject);
procedure btnStopCameraClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure CameraComponent1SampleBufferReady(Sender: TObject;
const ATime: Int64);
procedure btnFrontCameraClick(Sender: TObject);
procedure btnBackCameraClick(Sender: TObject);
procedure btnOnClick(Sender: TObject);
procedure btnOffClick(Sender: TObject);
procedure btnAutoClick(Sender: TObject);
procedure CaptureClick(Sender: TObject);
procedure RecordButtonClick(Sender: TObject);
private
{ Private declarations }
procedure GetImage;
public
{ Public declarations }
function AppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
end;

var
CameraComponentForm: TCameraComponentForm;

implementation

{$R *.fmx}
{$R *.LgXhdpiPh.fmx ANDROID}

procedure TCameraComponentForm.FormCreate(Sender: TObject);
var
AppEventSvc: IFMXApplicationEventService;
begin
{ by default, we start with Front Camera and Flash Off }
{ cbFrontCamera.IsChecked := True;
CameraComponent1.Kind := FMX.Media.TCameraKind.ckFrontCamera;

cbFlashOff.IsChecked := True;
if CameraComponent1.HasFlash then
CameraComponent1.FlashMode := FMX.Media.TFlashMode.fmFlashOff;
}
{ Add platform service to see camera state. }
if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(AppEventSvc)) then
AppEventSvc.SetApplicationEventHandler(AppEvent);
end;

procedure TCameraComponentForm.Timer1Timer(Sender: TObject);
begin
imgCameraView.Repaint;
end;

{ Make sure the camera is released if you're going away.}

function TCameraComponentForm.AppEvent(AAppEvent: TApplicationEvent;
AContext: TObject): Boolean;
begin
case AAppEvent of
TApplicationEvent.WillBecomeInactive:
CameraComponent1.Active := False;
TApplicationEvent.EnteredBackground:
CameraComponent1.Active := False;
TApplicationEvent.WillTerminate:
CameraComponent1.Active := False;
end;
end;

procedure TCameraComponentForm.btnAutoClick(Sender: TObject);
begin
{ turn on automatic control of Flash, if supported }
if CameraComponent1.HasFlash then
CameraComponent1.FlashMode := FMX.Media.TFlashMode.AutoFlash;
end;

procedure TCameraComponentForm.btnBackCameraClick(Sender: TObject);
begin
{ select Back Camera }
CameraComponent1.Active := False;
CameraComponent1.Kind := FMX.Media.TCameraKind.BackCamera;
CameraComponent1.Active := True;
end;

procedure TCameraComponentForm.btnFrontCameraClick(Sender: TObject);
begin
{ select Front Camera }
CameraComponent1.Active := False;
CameraComponent1.Kind := FMX.Media.TCameraKind.FrontCamera;
CameraComponent1.Active := True;
end;

procedure TCameraComponentForm.btnOffClick(Sender: TObject);
begin
{ turn off Flash, if supported }
if CameraComponent1.HasFlash then
CameraComponent1.FlashMode := FMX.Media.TFlashMode.FlashOff;
end;

procedure TCameraComponentForm.btnOnClick(Sender: TObject);
begin
{ turn on Flash, if supported }
if CameraComponent1.HasFlash then
CameraComponent1.FlashMode := FMX.Media.TFlashMode.FlashOn;
end;

procedure TCameraComponentForm.btnStartCameraClick(Sender: TObject);
begin
{ turn on the Camera }
CameraComponent1.Active := True;
end;

procedure TCameraComponentForm.btnStopCameraClick(Sender: TObject);
begin
{ turn off the Camera }
CameraComponent1.Active := False;
showMessage(CameraComponent1.GetNamePath);
end;

procedure TCameraComponentForm.CameraComponent1SampleBufferReady(
Sender: TObject; const ATime: Int64);
begin
TThread.Synchronize(TThread.CurrentThread, GetImage);
// imgCameraView.Width := imgCameraView.Bitmap.Width;
// imgCameraView.Height := imgCameraView.Bitmap.Height;
end;

procedure TCameraComponentForm.CaptureClick(Sender: TObject);
var fs: TFileStream;
s: TMemoryStream;
buf: TBytes;
begin

if SaveDialog1.Execute then
imgCameraView.Bitmap.SaveToFile(SaveDialog1.FileName+'.png');
fs := TFileStream.Create('record.mp4',fmCreate);
s := TMemoryStream.Create;
try
//Image1.Picture.Graphic.SaveToStream(s);
imgCameraView.MultiResBitmap.SaveToStream(s);
SetLength(buf, s.Size);
s.Position := 0;
s.ReadBuffer(buf[0], s.Size);

//fs.WriteBuffer(, SizeOf(Integer)); <-here how do I save an integer which represents the size of the buffer? (so that when reading back i read this first.)

fs.WriteBuffer(buf[0], s.Size);
finally
s.Free;
fs.Free;
end;
end;

procedure TCameraComponentForm.GetImage;
begin
CameraComponent1.SampleBufferToBitmap(imgCameraView.Bitmap, True);
end;


{$R *.fmx}
var
recording:Boolean;

procedure TCameraComponentForm.RecordButtonClick(Sender: TObject);
begin
// svp aider moi
end;

end.
0
kuetedonald Messages postés 45 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 4 octobre 2016 3
27 nov. 2014 à 15:57
ce n'est ke le button record ki m'intersse
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344 > kuetedonald Messages postés 45 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 4 octobre 2016
28 nov. 2014 à 00:25
Je ne fais pas de delphi ... mais ceci peut peut être répondre à ta question :
https://www.youtube.com/watch?v=EDgCyE0MSVo

.
0
kuetedonald Messages postés 45 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 4 octobre 2016 3
11 déc. 2014 à 13:53
merci mais ca ne repond pas a mes attente.
0
Rejoignez-nous