2009-01-09 17 views
31

Ich bin auf der Suche nach dem einfachsten Weg, um eine MP3-Datei in C zu spielen. Ich suche entweder eine Bibliothek, in der ich einfach die Funktion auf den Dateinamen aufrufen könnte, oder eine ausführbare Datei, die gerade ausgeführt und beendet wird. Bitte vorschlagen.Wie spielt man MP3-Dateien in C?

+0

Welche Lizenz soll diese Bibliothek haben? Ich denke, es gibt ein paar GPL-Dateien (obwohl das MP3-Format/Algorithmus immer Lizenzprobleme hat), aber diese passen vielleicht nicht zu Ihrem Projekt. Auch: windows/osx/linux? –

Antwort

3

Ich weiß nicht, ob es "der einfachste Weg" ist, aber Sie könnten sich SDL ansehen (zusammen mit SDL_sound).

2

Wenn Sie unter Windows oder OS X sind, empfehle ich BASS (http://www.un4seen.com/bass.html)

Sie können die Bibliothek herunterladen und bei Codebeispiel aussehen, um loszulegen. Das Beispiel "Contest" im Verzeichnis C ist ein guter Startpunkt.

22

Mit FMOD (Cross-Plattform), soll dies, da dies so einfach sein:

#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(); 
} 

Als Randbemerkung, ich würde vorschlagen, dass Sie in C++ über C.

+14

Ich verstehe nicht, was die Randnotiz mit der Frage zu tun hat. – hanno

1

Wenn u C verwenden ++ und wenn Sie arbeiten auf Windows-Plattform als WMp3

Diese Bibliothek ist einfach zu arbeiten und lassen Sie spielen, Pause, suchen Sie auf MP3-Dateien.

0

alternativ etwas, was bereits jemand geschrieben hat, der nur laufen und beenden wird.

können Sie verwenden mpg123 (oder den Fixpunkt Port davon, mpg321)

mpg123 <mp3file> 

wird eine MP3-Datei, und beenden Sie spielen.

2

Auf Win32 benötigen Sie keine Bibliothek. Standard Win32 api verwenden (mp3 ist nativ)

Siehe auf Erw. Win32 api Newsgruppe: news: //comp.os.ms-windows.programmer.win32 wo es eine FAQ ist.

+0

http://www.codeproject.com/KB/audio-video/MP3Example.aspx – bobobobo

5

Die BASS DLL ist wirklich einfach zu bedienen und wird wahrscheinlich tun, was Sie brauchen. Es ist jedoch nur für nicht-kommerzielle Nutzung frei.

Wenn Sie mehr Kontrolle benötigen, müssen Sie einen Codec (ich ziehe libMad) und eine Tonausgabe API wie Directsound unter Windows oder ALSA oder Linux (oder was auch immer Linux Jungs Ton über diese Woche)

0

mpg123 hat eine generische Remote-Schnittstelle, auf die Sie zugreifen, indem Sie die ausführbare Datei mit der Option -R starten. Sie können dann Befehle (wie zum Beispiel laden, pausieren usw.) über eine FIFO-Pipe oder an den Standard des Subprozesses senden. Wenn nicht anders, ist es einfach, manuell zu debuggen und zu testen.