Difference between revisions of "Multimedia Programming"

From Lazarus wiki
(Squall sound)
m (Text replace - "delphi>" to "syntaxhighlight>")
Line 109: Line 109:
 
The project is dead, but is very easy to use:
 
The project is dead, but is very easy to use:
  
<delphi>
+
<syntaxhighlight>
 
Media_Play('Music.mp3', TRUE);
 
Media_Play('Music.mp3', TRUE);
</delphi>
+
</syntaxhighlight>
  
 
==SDL + SDL_mixer==
 
==SDL + SDL_mixer==

Revision as of 15:42, 24 March 2012

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 as well as usage examples

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 OMEGA 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:

Media_Play('Music.mp3', TRUE);

SDL + SDL_mixer

The basic SDL library comes with a very simple sound system. On top of that, SDL mixer adds more sound APIs which build a more flexible solution.

FMOD

Is a closed source solution. It is free for use for non-comercial software, but requires the payment of licenses for commercial software.

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

FPSound

FPSound is a new library being developed on the molds of fpspreadsheet and fpvectorial: it has independent modules to read, write and play sound files and also an intermediary representation for edition. See FPSound