Multimedia Programming

From Lazarus wiki
Jump to navigationJump to search

Playing Videos

Starting a player application

Once you know the command line and parameters you can use TProcessUTF8 to start the player:

<Delphi> uses

 Classes, ..., LCLProc, UTF8Process;

...

implementation

procedure TMainForm.Button1Click(Sender: TObject); var

 Player: TProcessUTF8;

begin

 Player:=TProcessUTF8.Create(nil);
 try
   Player.CommandLine:=PathToPlayer+' '+ParametersAndMediaFile;
   Player.Execute;
 finally
   Player.Free;
 end;

end; </Delphi>

For example to start under Linux the mplayer to play a video use:

<Delphi> uses

 Classes, ..., FileUtil, LCLProc, UTF8Process;

...

implementation

procedure TMainForm.Button1Click(Sender: TObject); var

 Player: TProcessUTF8;
 Filename: String;
 PlayerPath: String;
 PlayerParams: String;

begin

 Filename:='/home/username/video.mpg';
 PlayerPath:=FindDefaultExecutablePath('mplayer');
 PlayerParams:='"'+Filename+'"';
 Player:=TProcessUTF8.Create(nil);
 try
   Player.CommandLine:=PlayerPath+' '+PlayerParams;
   Player.Execute;
 finally
   Player.Free;
 end;

end; </Delphi>

VFW - Video for Windows

Capturing and playing video streams from TV cards and webcams under Windows the VFW API can be used with SysRec.

MPlayer for Linux gtk2/X

mplayer is an open source and free movie player. There is a LCL control embedding the mplayer, so you can built your own movie players or just play a video in your application. You can download it here:

svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/mplayer mplayer

Playing Sounds

Using the Audio Component Suite

Read the page about the Audio Component Suite

Using the OpenAL Library

A tutorial for Delphi can be found here: [1]

Free Pascal comes with a unit for accessing OpenAL located in fpc/packages/openal

BASS

The BASS library can be downloaded from: http://www.un4seen.com/ and http://www.un4seen.com/forum/?topic=8682.0

There is a DJ application, for Windows and Linux, written with Lazarus and using Bass lib: http://members.lycos.co.uk/mixk/

Audiere Library

Has bindings for Delphi, but they don't work with FPC:

Audorra Library

Works fine with Lazarus:

http://sourceforge.net/projects/audorra/

OMEGA Engine

The OMAGE Engine is a full game engine in single Omega.dll file which is just 50kb. It can successfully play FLAC,OGG,MP3,MP2,AMR and WMA files. It searches and uses installed audio codecs from the system.

http://sourceforge.net/projects/omega-engine/files/

The project is dead, but is very easy to use:

<delphi> Media_Play('Music.mp3', TRUE); </delphi>

SDL + SDL_mixes

FMOD

Is a closed source solution.

Squall sound

Squall sound works fine with FPC. It has 3D audio and EAX effects, but just supports MP3, OGG and WAV formats.

http://www.afterwarp.net/resources/soundlib