36

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

4

10 回答 10

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。

于 2009-01-09T17:55:00.573 回答
5

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

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

于 2009-01-11T20:01:39.367 回答
3

我不知道这是否是“最简单的方法”,但你可以看看 SDL(连同 SDL_sound)。

于 2009-01-09T17:32:49.167 回答
2

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

参见 Adv. Win32 api 新闻组:news://comp.os.ms-windows.programmer.win32 这是一个常见问题解答。

于 2009-01-11T19:57:35.833 回答
2

如果您在 Windows 或 OSX 上,我推荐 BASS ( http://www.un4seen.com/bass.html )

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

于 2009-01-09T17:41:23.440 回答
1

如果你可以使用 C++ 并且如果你在 Windows 平台上工作而不是使用 WMp3

该库易于使用,可让您播放、暂停、查找 mp3 文件。

于 2009-01-09T18:06:36.213 回答
0

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

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

mpg123 <mp3file>

将播放一个 mp3 文件并退出。

于 2009-01-09T20:37:52.243 回答
0

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

于 2009-01-30T11:53:56.927 回答
0

到这里:

http://code4k.blogspot.com/2010/05/playing-mp3-in-c-using-plain-windows.html

该网站有一个 zip,您可以在其中查看此人如何生成 mp3 播放器的代码。

您还可以查看: http: //www.codeguru.com/cpp/gm/directx/directshow/article.php/c19079/Simple-C-MP3-Player-Class.htm

或者

http://www.ucancode.net/Visual_C_Control/Play-MP3-File-VC-Sample-Player.htm

于 2013-05-20T19:31:46.353 回答
-4

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

#include <windows.h>
void main()
{
    //replace music with your filename
    system("start music.mp3");
}
于 2019-02-26T15:55:33.620 回答