这个C程序当初搞了好久,从网上各种搜索教程,但是网上找的代码都不行,始终播放不了音乐,最后才发现是自己音乐格式的问题,从网易,qq音乐等等音乐软件里下载的MP3格式音乐并不是真正的MP3,而常用的音乐播放函数要求音乐必须是MP3格式的,所以导致好长时间一直实现不了音乐播放的功能。向大家推荐一款名为MP3提取转换器的APP,可以用这个软件进音频的格式转换。
下面的代码用VS2017可以完美播放音乐,当然,前提是你得把名为home的MP3类型文件放到.cpp文件所在的文件夹,如图所示。(忽略WAV文件)
#include"pch.h"
#include <windows.h>
#include <stdio.h>
#pragma comment(lib,"winmm.lib")
int main()
{
/*puts("播放声音...");
BOOL flag = PlaySound("home.wav", NULL, SND_FILENAME | SND_ASYNC);
puts("按任意键退出!");
int a;
scanf("%d", &a);
if (a == 1)
PlaySound(0, NULL, 0);
system("pause>nul");*/
int a;
mciSendString("play home.mp3", NULL, 0, NULL);
scanf("%d", &a);
mciSendString("stop home.mp3", NULL, 0, NULL);
mciSendString("close home.mp3", NULL, 0, NULL);
mciSendString("open home.wav", NULL, 0, NULL);
mciSendString("play home.wav", NULL, 0, NULL);
Sleep(500000);
printf("hello world");
}
最后,放上home.mp3的下载链接供大家测试。
链接:https://pan.baidu.com/s/1c7Jkbd1g5OshxVQPs4PEsA
提取码:4gj8
2020年3月28日更新
考虑到很多人电脑上并不会安装像VS这种厚重的开发工具,所以我更新一下Dev-C++和Codeblocks的使用方法。
Dev-C++
创建一个控制台应用程序项目,复制粘贴上面的代码,注意把第一行的#include pch.h
删掉,如下图所示。
在上面的菜单栏选择工具–>编译选项
在第二个输入框中加入命令-static-libgcc -lwinmm
,如下图所示。
点击确定,然后再将Mp3文件放在main.cpp
文件所在的目录下,如下图所示。
在Dev-C++中点击编译运行,在弹出控制台窗口(黑色的窗口)后即可播放音乐。
Codeblocks
创建一个控制台应用程序项目,复制粘贴上面的代码,注意把第一行的#include pch.h
删掉,如下图所示。
在Codeblocks的菜单栏中点击Settings–>Compiler
点击Linker settings,再在Other linker options下面输入-lwinmm
,点击OK保存。
将mp3文件放在main.cpp文件所在的目录下,如下图所示。
在Codeblocks中点击build and run,当出现黑窗时就能播放音乐了。
注意:出现黑窗之后可能还得等待几秒才能听到音乐声