我正在寻找在C中播放MP3文件的最简单方法。我正在寻找一个库,我可以在文件名中调用函数,或者只运行和退出的可执行文件。请建议。
答案 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)
答案 7 :(得分:0)
mpg123有一个通用的远程接口,您可以通过使用-R选项启动可执行文件来访问该接口。然后,您可以通过fifo管道或子进程的stdin发送命令(例如加载,暂停等)。如果不出意外,手动调试和测试都很容易。
答案 8 :(得分:0)
转到此处:
http://code4k.blogspot.com/2010/05/playing-mp3-in-c-using-plain-windows.html
此网站有一个拉链,您可以在其中查看此人如何为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
答案 9 :(得分:0)
基本上,您可以使用windows.h头文件
#include <windows.h>
void main()
{
//replace music with your filename
system("start music.mp3");
}