Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

SAVING MEDIA CLIPS FILES.

Posted on 1998-03-05
3
Medium Priority
?
200 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Suggested Courses

609 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