2009-01-09 43 views
31

我正在尋找以C語言播放MP3文件的最簡單方法。我正在尋找一個庫,我可以在其中調用文件名上的函數,或者只是運行並退出的可執行文件。請建議。如何播放C文件中的MP3文件?

+0

應該這個庫有什麼樣的許可證?我猜想有一些GPL版本(儘管mp3格式/算法總是/有許可證問題),但這些可能不適合您的項目。另外:Windows/OSX/Linux的? – 2009-01-09 17:14:34

回答

3

我不知道它是否是「最簡單的方法」,但您可以查看SDL(以及SDL_sound)。

2

如果您使用的是Windows或OSX,我建議BASS(http://www.un4seen.com/bass.html

您也可以下載庫,並期待在代碼示例上手。 C目錄中的「比賽」例子是一個很好的起點。

22

使用FMOD(跨平臺),這應該是如此簡單:

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

作爲一個方面說明,我建議你使用C++在C.

+14

我不明白這個問題與附註有什麼關係。 – hanno 2015-12-13 22:57:30

1

如果妳可以使用C++如果你正在使用的Windows平臺上使用 WMp3

該庫很容易使用,讓你玩,暫停,尋找MP3文件。

0

或者某人已經寫好的東西可以運行並退出。

可以使用mpg123(或它的定點端口,mpg321

mpg123 <mp3file> 

將播放MP3文件,並退出。

2

在Win32上,你不需要任何庫。 使用標準的Win32 api(mp3是原生的)

See on Adv。 Win32 api新聞組: 新聞://comp.os.ms-windows.programmer.win32 它是一個FAQ。

+0

http://www.codeproject.com/KB/audio-video/MP3Example.aspx – bobobobo 2010-02-11 15:14:49

5

BASS DLL非常容易使用,並可能會做你所需要的。它只是免費的非商業用途。

如果您需要更多的控制,你將需要一個編解碼器(我喜歡libMad),並在Windows或ALSA或Linux的一些聲音輸出API類似的DirectSound(或任何Linux的人使用的聲音本週)

0

mpg123有通過使用-R選項啓動可執行文件訪問的通用遠程接口。然後,您可以通過FIFO管道或子進程的標準輸入發送命令(如加載,暫停等)。如果沒有其他問題,則可以手動進行調試和測試。