【发布时间】:2010-09-30 13:01:56
【问题描述】:
我正在寻找用 C 语言播放 MP3 文件的最简单方法。我正在寻找一个库,我可以在其中调用文件名上的函数,或者一个可以运行和退出的可执行文件。请提出建议。
【问题讨论】:
-
这个库应该有什么样的许可证?我猜有几个 GPL 的(尽管 mp3 格式/算法总是有/有它的许可证问题),但这些可能不适合你的项目。还有:windows/osx/linux?
我正在寻找用 C 语言播放 MP3 文件的最简单方法。我正在寻找一个库,我可以在其中调用文件名上的函数,或者一个可以运行和退出的可执行文件。请提出建议。
【问题讨论】:
使用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。
【讨论】:
我不知道这是否是“最简单的方法”,但您可以看看 SDL(以及 SDL_sound)。
【讨论】:
如果您使用的是 Windows 或 OSX,我推荐 BASS (http://www.un4seen.com/bass.html)
您可以下载该库并查看代码示例以开始使用。 C 目录中的“竞赛”示例是一个很好的起点。
【讨论】:
在 Win32 上,您不需要任何库。 使用标准 Win32 api(mp3 是原生的)
参见 Adv. Win32 api 新闻组: 新闻://comp.os.ms-windows.programmer.win32 这是一个常见问题解答。
【讨论】:
如果你可以使用 C++ 并且你在 windows 平台上工作,那么使用 WMp3
该库易于使用,可让您播放、暂停、查找 mp3 文件。
【讨论】:
mpg123 有一个通用远程接口,您可以通过使用 -R 选项启动可执行文件来访问该接口。然后,您可以通过 fifo 管道或子进程的标准输入发送命令(例如加载、暂停等)。如果没有别的,手动调试和测试很容易。
【讨论】:
去这里:
http://code4k.blogspot.com/2010/05/playing-mp3-in-c-using-plain-windows.html
此网站有一个 zip,您可以在其中查看此人如何生成 mp3 播放器的代码。
您还可以查看: http://www.codeguru.com/cpp/g-m/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
【讨论】:
基本上可以使用windows.h头文件
#include <windows.h>
void main()
{
//replace music with your filename
system("start music.mp3");
}
【讨论】:
system 来自 stdlib.h,而不是来自 windows.h