I'm looking for the easiest way to play a MP3 file in C. I am looking for either a library, in which I could just call the function on the filename, or an executable that will just run and quit. Please suggest.
-
What kind of license should this library have? I'd guess there are a couple of GPL ones (although the mp3 format/algorithm always has/had it's license issues) but these might not fit your project. Also: windows/osx/linux? – Simon Groenewolt Jan 09 '09 at 17:14
9 Answers
Using FMOD (cross platform), this should be as simple as this:
#include <conio.h>
#include "inc/fmod.h"
FSOUND_SAMPLE* handle;
int main ()
{
// init FMOD sound system
FSOUND_Init (44100, 32, 0);
// load and play mp3
handle=FSOUND_Sample_Load (0,"my.mp3",0, 0, 0);
FSOUND_PlaySound (0,handle);
// wait until the users hits a key to end the app
while (!_kbhit())
{
}
// clean up
FSOUND_Sample_Free (handle);
FSOUND_Close();
}
As a side note, I'd suggest you using C++ over C.
The BASS DLL is really easy to use and will probably do what you need. It is only free for non-commercial use though.
If you need more control, you will need a codec (I prefer libMad) and some sound output API like DirectSound on Windows or ALSA or Linux (or whatever Linux guys use for sound this week)

- 118,853
- 40
- 150
- 176
I don't know if it is "the easiest way", but you could have a look at SDL (along with SDL_sound).

- 41
- 2
If you are on Windows or OSX, I recommend BASS (http://www.un4seen.com/bass.html)
You can download the library and look at code sample to get started. The "contest" example in C directory is a good start point.

- 29,661
- 6
- 46
- 65
On Win32, you don't need any library. Use standard Win32 api (mp3 is native)
See on Adv. Win32 api newsgroup : news://comp.os.ms-windows.programmer.win32 where it 's a FAQ.
Go here:
http://code4k.blogspot.com/2010/05/playing-mp3-in-c-using-plain-windows.html
This website has a zip in which you can view how this person generated the code for an mp3 player.
You can also check out: http://www.codeguru.com/cpp/g-m/directx/directshow/article.php/c19079/Simple-C-MP3-Player-Class.htm
or
http://www.ucancode.net/Visual_C_Control/Play-MP3-File-VC-Sample-Player.htm