Firemonkey record Video

Signaler
Messages postés
49
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
4 octobre 2016
-
Messages postés
49
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
4 octobre 2016
-
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

Messages postés
31545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mars 2021
344
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

Messages postés
49
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
4 octobre 2016
3
svp M. jordane45 regarder un peu le code ci-dessous
Messages postés
49
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
4 octobre 2016
3
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.
Messages postés
49
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
4 octobre 2016
3
ce n'est ke le button record ki m'intersse
Messages postés
31545
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mars 2021
344 >
Messages postés
49
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
4 octobre 2016

Je ne fais pas de delphi ... mais ceci peut peut être répondre à ta question :
https://www.youtube.com/watch?v=EDgCyE0MSVo

.
Messages postés
49
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
4 octobre 2016
3
merci mais ca ne repond pas a mes attente.