2009-01-09 9 views
31

Szukam najprostszego sposobu na odtwarzanie pliku MP3 w C. Szukam biblioteki, w której mógłbym po prostu wywołać funkcję na nazwie pliku lub pliku wykonywalnego, który po prostu uruchomi i zakończy. Proszę zasugeruj.Jak odtwarzać pliki MP3 w C?

+0

Jaki rodzaj licencji powinno to mieć bibliotekę? Sądzę, że istnieje kilka GPL (chociaż format/algorytm mp3 zawsze ma/miał problemy z licencją), ale mogą one nie pasować do twojego projektu. Również: windows/osx/linux? –

Odpowiedz

3

Nie wiem, czy jest to "najprostszy sposób", ale można też rzucić okiem na SDL (wraz z SDL_sound).

2

Jeśli jesteś na Windows lub OS X, polecam BASS (http://www.un4seen.com/bass.html)

można pobrać z biblioteki i spojrzeć na próbki kodu, aby zacząć. Przykład "konkursu" w katalogu C jest dobrym punktem początkowym.

22

Korzystanie FMOD (Cross Platform), powinno to być tak proste, jak to:

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

Na marginesie, polecam Ci używając C++ na C

+14

Nie rozumiem, co ma wspólnego z tym pytaniem. – hanno

1

Jeśli u można użyć C++ a jeśli pracujesz na platformie Windows, użyj WMp3

Ta biblioteka jest łatwa w użyciu i umożliwia odtwarzanie, wstrzymywanie, wyszukiwanie plików mp3.

0

alternatywnie coś, co ktoś już napisał, po prostu przestanie działać.

Można użyć mpg123 (lub port stałym punktem Opisz mpg321)

mpg123 <mp3file> 

odegra plik mp3 i wychodzi.

2

Na Win32, nie potrzebujesz żadnej biblioteki. Użyj standardowego api Win32 (mp3 jest rodzimy)

Zobacz na Adv. Grupa dyskusyjna Win32 api: news: //comp.os.ms-windows.programmer.win32 gdzie jest to najczęściej zadawane pytania.

+0

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

5

Urządzenie BASS DLL jest bardzo łatwe w użyciu i prawdopodobnie wykona to, czego potrzebujesz. Jest jednak bezpłatny tylko do użytku niekomercyjnego.

Jeśli potrzebujesz większą kontrolę, trzeba będzie kodek (wolę libMad) i jakieś wyjście dźwięku API jak DirectSound w systemie Windows lub ALSA lub Linux (lub cokolwiek Linux faceci wykorzystać dźwięku Bieżący tydzień)

0

mpg123 ma ogólny zdalny interfejs, do którego można uzyskać dostęp, uruchamiając plik wykonywalny za pomocą opcji -R. Następnie możesz wysyłać polecenia (takie jak ładowanie, pauza itd.) Przez rurkę fifo lub stdin podprocesu. Jeśli nic innego, łatwo można debugować i testować ręcznie.