Difference between revisions of "Multimedia Programming"
Line 95: | Line 95: | ||
FPSound is a new library being developed in the mold of fpspreadsheet and fpvectorial: it has independent modules to read, write and play sound files and also an intermediary representation for editing. See [[FPSound]] | FPSound is a new library being developed in the mold of fpspreadsheet and fpvectorial: it has independent modules to read, write and play sound files and also an intermediary representation for editing. See [[FPSound]] | ||
− | == | + | ==uos (United OpenLib of Sound)== |
− | + | uos: United OpenLib of Sound. UOS unifies the best open-source audio libraries. | |
− | With | + | With uos you can: |
*Listen to mp3, ogg, wav, flac,... audio files. | *Listen to mp3, ogg, wav, flac,... audio files. | ||
*With 16, 32 or float 32 bit resolution. | *With 16, 32 or float 32 bit resolution. | ||
*Record all types of input into file. | *Record all types of input into file. | ||
*Add DSP effects and filters, however many you want and record it. | *Add DSP effects and filters, however many you want and record it. | ||
+ | *Do web audio-streaming (listen to web-radio and apply filters). | ||
*Listen to multiple inputs and outputs. | *Listen to multiple inputs and outputs. | ||
− | + | uos uses the PortAudio, SndFile, Mpg123 and SoundTouch audio libraries. | |
Included in the package: | Included in the package: | ||
* examples. | * examples. | ||
− | * binary libraries for Linux 32/64, Windows 32/64, Mac OSX 32. | + | * binary libraries for Linux 32/64, Windows 32/64, Mac OSX 32, freeBSD 32/64. |
http://github.com/fredvs/uos/ | http://github.com/fredvs/uos/ |
Revision as of 23:09, 12 May 2015
│
Deutsch (de) │
English (en) │
日本語 (ja) │
한국어 (ko) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Playing Videos
Several Libraries exist for embedding video playback into applications.
MPlayer for Linux gtk2/X and Windows
mplayer is an open source and free movie player. As part of Lazarus-CCR, there is a LCL control TMPlayerControl 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
Windows only: using the Windows API
You can use the Windows API to play e.g. wav files:
...
uses MMSystem;
...
sndPlaySound('C:\sounds\test.wav', snd_Async or snd_NoDefault);
The fail-safe way, which will allow appending paths and nonlatin file names is:
sndPlaySound(pchar(UTF8ToSys('C:\sounds\test.wav')), snd_Async or snd_NoDefault);
Obviously, this is not cross-platform
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, Linux and Mac OSX, written with Lazarus and using Bass lib: https://sites.google.com/site/fiensprototyping/
Audiere Library
Has bindings for Delphi, but they don't work with FPC:
- http://www.casteng.com/whypascal.shtml
- http://www.afterwarp.net/resources/soundlib
- http://code.google.com/p/audiere-bind-delphi/
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);
PortAudio
Various bindings for PortAudio, a cross-platform, open source library for audio playback and recording are available. See [[2]] for some versions. Forum user FredvS has written a Pascal unit that dynamically loads PortAudio: [3]
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.
Units for accessing SDL libraries are located in fpc/packages/sdl.
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 in the mold of fpspreadsheet and fpvectorial: it has independent modules to read, write and play sound files and also an intermediary representation for editing. See FPSound
uos (United OpenLib of Sound)
uos: United OpenLib of Sound. UOS unifies the best open-source audio libraries.
With uos you can:
- Listen to mp3, ogg, wav, flac,... audio files.
- With 16, 32 or float 32 bit resolution.
- Record all types of input into file.
- Add DSP effects and filters, however many you want and record it.
- Do web audio-streaming (listen to web-radio and apply filters).
- Listen to multiple inputs and outputs.
uos uses the PortAudio, SndFile, Mpg123 and SoundTouch audio libraries.
Included in the package:
- examples.
- binary libraries for Linux 32/64, Windows 32/64, Mac OSX 32, freeBSD 32/64.