Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Avi aus Resource laden und abspielen (https://www.delphipraxis.net/2689-avi-aus-resource-laden-und-abspielen.html)

City Light 2. Feb 2003 19:14


Avi aus Resource laden und abspielen
 
Hallo ich habe mal ein bisschen was gebastelt

meine frage bezieht sich auf diesem Code.
Kann mir einer sagen wie ich eine loop oder Replay funktion für die Avi bekomme so das ,daß Video immer als schleife abspielt.

das in die RC Datei schreiben
A1 AVI Film.avi

Datei speichern als Film.rc und so kompilieren
brcc32 Film.rc

Film.Res in Programm einbinden mit
{$R Film.res}


Delphi-Quellcode:
uses
    MMSystem;

  public
    { public-Deklarationen }
    procedure MMNotify(var message: TMessage); message MM_MCINOTIFY;
  end;


implementation
const Filename='~temp.avi';

{$R *.dfm}
{$R Film.res}

procedure TForm1.MMNotify(var message: TMessage);
begin
  MCISendString('close film', nil, 0, 0);
end;

{$WARNINGS OFF}
procedure Temp;
var
  rs: TCustomMemoryStream;
  s : string;
begin
  s := 'A1'; {Name der Resource}
  try
    rs := TResourceStream.Create(hInstance, s, 'AVI');
    rs.SavetoFile(Filename);
  finally
    rs.Free;
  end;
end;
{$WARNINGS ON}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Temp();
  MCISendString(PChar('Play '+ filename), nil, 0, 0);
  {
  Oder auch im Vollbild:
  MCISendString(PChar('open '+ filename +' alias film'), nil, 0, 0);
  MCISendString('window film handle 0', nil, 0, 0);
  MCISendString('window film state show maximized', nil, 0, 0);
  MCISendString('play film notify', nil, 0, Form1.Handle);
  }
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if fileexists(filename) then
  deletefile(filename); // ~temp.avi' löschen;
end;

end.

Luckie 2. Feb 2003 20:03

Eine Antwort auf deine Frage weiß ich auch nicht, aber wo landet deine AVI-Datei?
Delphi-Quellcode:
const Filename='~temp.avi';
das sie von deinem Programm gefunden wird, wenn es sie braucht dürfte Zufall sein.

City Light 2. Feb 2003 20:16

Sie landet im dem Verzeichnis wo sich deine exe befindet

Luckie 2. Feb 2003 20:21

Wo steht das? Sie wird in das aktuelle Verzeichnis entpackt. Das muß aber nicht das Exe-Verzeichnis sein. Gib bei einer Verknüpfung ein anderes Arbeitsverzeichnis an und Peng. Genauso sieht es aus, wenn man innerhalb der Anwendung das Verzeichnis gewechselt wird.

City Light 2. Feb 2003 20:41

danke!

vielleicht kannst du mir ein beispiel zeigen

so ?
extractfilepath(application.exename)

Luckie 2. Feb 2003 20:44

Zum Beispiel und dann hängst du noch deinen Dateinamen dran.

Christian Seehase 2. Feb 2003 20:45

Moin Tino,

grundsätzlich: Ja.

Ich persönlich ziehe folgende Variante vor:

ExtractFilePath(paramstr(0))

Da paramstr(0) und Application.Exename den gleichen Wert zurückliefern, würde zwar das gleiche dabei herauskommen, aber dafür funktioniert paramstr(0) auch ohne unit Forms, was sich bei Konsolenanwendungen als recht hilfreich erweisen kann (@Luckie: und natürlich auch bei nonVCL ;-) )

nailor 2. Feb 2003 20:48

Wenn mich nicht alles täuscht, ist '.\' doch das .exe-Verzeichnis, und nicht der aktuelle Ordner. d.h. mach aus

'~temp.avi' -> '.\~temp.avi'

und es ist eindeutig, oder nicht?

City Light 2. Feb 2003 20:48

danke Christian
ich hab mal das so gemacht

Delphi-Quellcode:
{$WARNINGS OFF}
procedure TForm1.Temp;
var
  rs: TCustomMemoryStream;
  s : string;
begin
  s := 'A1'; {Name der Resource}
  try
    rs := TResourceStream.Create(hInstance, s, 'AVI');
    rs.SavetoFile(ExtractFilePath(paramstr(0))+Filename);
  Finally
    rs.Free;
  end;
end;
{$WARNINGS ON}

City Light 2. Feb 2003 20:52

Zitat:

Zitat von Nailor
Wenn mich nicht alles täuscht, ist '.\' doch das .exe-Verzeichnis, und nicht der aktuelle Ordner. d.h. mach aus

'~temp.avi' -> '.\~temp.avi'

und es ist eindeutig, oder nicht?

hmmm...denke ich auch Nailor!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz