?
Solved

SAVING MEDIA CLIPS FILES.

Posted on 1998-03-05
3
Medium Priority
?
202 Views
Last Modified: 2010-04-06
I HAVE MADE A DATABASE FOR THE CLIPS FILES(AVI), BUT I DON'T KNOW
HOW TO SAVE THEM IN MY TABLE THAT I HAVE CREATED.
E.G. I HAVE MADE A TABLE(*.DBF) FOR THE CLIPS(AVI), BUT I DON'T KNOW
HOW TO SAVE AVI FILE FROM THE APPLICATION INTO THE TABLE.
0
Comment
Question by:SAMEH_MAX
  • 3
3 Comments
 
LVL 8

Accepted Solution

by:
ZifNab earned 200 total points
ID: 1360111
Hi Sameh_Max,

    I found this one on the net, hope it sutes your needs :

    AVI files can be stored in BLOB (binary large object) fields. The easist way to play an AVI file stored in a BLOB is to write the BLOB data to a temporary file, then use the mulimedia player play the file. The following example demonstrates how to store an AVI file  to a BLOB field, and also play the AVI file from the blob field.

                                 Example:

                                 var
                                   FileName : string;

                                 {This function gets a temporary file name form the system}
                                 function GetTemporaryFileName : string;
                                 {$IFNDEF WIN32}
                                   const MAX_PATH = 144;
                                 {$ENDIF}
                                 var
                                  {$IFDEF WIN32}
                                   lpPathBuffer : PChar;
                                  {$ENDIF}
                                   lpbuffer : PChar;
                                 begin
                                  {Get the file name buffer}
                                   GetMem(lpBuffer, MAX_PATH);
                                  {$IFDEF WIN32}
                                  {Get the temp path buffer}
                                   GetMem(lpPathBuffer, MAX_PATH);
                                  {Get the temp path}
                                   GetTempPath(MAX_PATH, lpPathBuffer);
                                  {Get the temp file name}
                                   GetTempFileName(lpPathBuffer,
                                                   'tmp',
                                                   0,
                                                   lpBuffer);
                                  {Free the temp path buffer}
                                   FreeMem(lpPathBuffer, MAX_PATH);
                                  {$ELSE}
                                  {Get the temp file name}
                                   GetTempFileName(GetTempDrive('C'),
                                                   'tmp',
                                                   0,
                                                   lpBuffer);
                                  {$ENDIF}
                                  {Create a pascal string containg}
                                  {the temp file name and return it}
                                   result := StrPas(lpBuffer);
                                  {Free the file name buffer}
                                   FreeMem(lpBuffer, MAX_PATH);
                                 end;

                                 {Read a AVI file into a blob field}
                                 procedure TForm1.Button1Click(Sender: TObject);
                                 var
                                   FileStream: TFileStream; {to load the avi file}
                                   BlobStream: TBlobStream; {to save to the blob}
                                 begin
                                  {Allow the button to repaint}
                                   Application.ProcessMessages;
                                  {Turn off the buttons}
                                   Button1.Enabled := false;
                                   Button2.Enabled := false;
                                  {Assign the avi file name to read}
                                   FileStream := TFileStream.Create(
                                     'C:\PROGRA~1\BORLAND\DELPHI~1\DEMOS\COOLSTUF\COOL.AVI',
                                     fmOpenRead);
                                   Table1.Edit;
                                  {Create a BlobStream for the field Table1AVI}
                                   BlobStream := TBlobStream.Create(Table1AVI, bmReadWrite);
                                  {Seek to the Begginning of the stream}
                                   BlobStream.Seek(0, soFromBeginning);
                                  {Delete any data that may be there}
                                   BlobStream.Truncate;
                                  {Copy from the FileStream to the BlobStream}
                                   BlobStream.CopyFrom(FileStream, FileStream.Size);
                                  {Free the streams}
                                   FileStream.Free;
                                   BlobStream.Free;
                                  {Post the record}
                                   Table1.Post;
                                  {Enable the buttons}
                                   Button1.Enabled := true;
                                   Button2.Enabled := true;
                                 end;

                                 {Read a avi stored in a blob, and play it}
                                 procedure TForm1.Button2Click(Sender: TObject);
                                 var
                                   FileStream: TFileStream; {a temp file}
                                   BlobStream: TBlobStream; {the AVI Blob}
                                 begin
                                  {Create a blob stream for the AVI blob}
                                   BlobStream := TBlobStream.Create(Table1AVI, bmRead);
                                   if BlobStream.Size = 0 then begin
                                    BlobStream.Free;
                                    Exit;
                                   end;
                                  {Close the media player}
                                   MediaPlayer1.Close;
                                  {Reset the file name}
                                   MediaPlayer1.FileName := '';
                                  {Refresh the play window}
                                   MediaPlayer1.Display := Panel1;
                                   Panel1.Refresh;
                                  {if we have a temp file then erase it}
                                   if FileName <> '' then
                                     DeleteFile(FileName);
                                  {Get a temp file name}
                                   FileName := GetTemporaryFileName;
                                  {Create a temp file stream}
                                   FileStream := TFileStream.Create(FileName,
                                                                    fmCreate or fmOpenWrite);
                                  {Copy the blob to the temp file}
                                   FileStream.CopyFrom(BlobStream, BlobStream.Size);
                                  {Free the streams}
                                   FileStream.Free;
                                   BlobStream.Free;
                                  {Setup the Medai player to play the AVI file}
                                   MediaPlayer1.FileName := filename;
                                   MediaPlayer1.DeviceType := dtAviVideo;
                                   MediaPlayer1.Open;
                                   MediaPlayer1.Play;
                                 end;

                                 procedure TForm1.FormDestroy(Sender: TObject);
                                 begin
                                  {Unassign the temp file from the media player}
                                   MediaPlayer1.Close;
                                   MediaPlayer1.FileName := '';
                                  {Erase the temp file}
                                   if FileName <> '' then
                                     DeleteFile(FileName);
                                 end;

                                 Joe
                                 --
                                 Joe C. Hecht
                                 joehecht@gte.net

    Regards, Zif.





0
 
LVL 8

Expert Comment

by:ZifNab
ID: 1360112
0
 
LVL 8

Expert Comment

by:ZifNab
ID: 1360113
and SAMEH_MAX is it working?
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
This Micro Tutorial will teach you how to add a cinematic look to any film or video out there. There are very few simple steps that you will follow to do so. This will be demonstrated using Adobe Premiere Pro CS6.
this video summaries big data hadoop online training demo (http://onlineitguru.com/big-data-hadoop-online-training-placement.html) , and covers basics in big data hadoop .
Suggested Courses
Course of the Month16 days, 13 hours left to enroll

864 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question