如何在C中播放MP3文件?

时间:2009-01-09 17:08:40

标签: c mp3

我正在寻找在C中播放MP3文件的最简单方法。我正在寻找一个库,我可以在文件名中调用函数,或者只运行和退出的可执行文件。请建议。

10 个答案:

答案 0 :(得分:24)

使用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.

答案 1 :(得分:5)

BASS DLL非常易于使用,可能会满足您的需求。但它仅供非商业用途免费使用。

如果你需要更多控制,你将需要一个编解码器(我更喜欢libMad)和一些声音输出API,如Windows上的DirectSound或ALSA或Linux(或本周用于声音的任何Linux人员)

答案 2 :(得分:3)

我不知道它是否是“最简单的方法”,但您可以查看SDL(以及SDL_sound)。

答案 3 :(得分:3)

在Win32上,您不需要任何库。 使用标准的Win32 api(mp3是原生的)

参见Adv。 Win32 api新闻组: 新闻://comp.os.ms-windows.programmer.win32 这是一个FAQ。

答案 4 :(得分:2)

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

您可以下载该库并查看代码示例以开始使用。 C目录中的“竞赛”示例是一个很好的起点。

答案 5 :(得分:1)

如果您可以使用C ++,并且如果您正在使用Windows平台而不是使用 WMp3

该库易于使用,让您播放,暂停,搜索mp3文件。

答案 6 :(得分:0)

  

或者某人已经写过的东西,只会运行并退出。

您可以使用mpg123(或其固定点端口,mpg321

mpg123 <mp3file>

将播放mp3文件并退出。

答案 7 :(得分:0)

mpg123有一个通用的远程接口,您可以通过使用-R选项启动可执行文件来访问该接口。然后,您可以通过fifo管道或子进程的stdin发送命令(例如加载,暂停等)。如果不出意外,手动调试和测试都很容易。

答案 8 :(得分:0)

答案 9 :(得分:0)

基本上,您可以使用windows.h头文件

#include <windows.h>
void main()
{
    //replace music with your filename
    system("start music.mp3");
}