用到的函数 PlaySound
所需头文件
#include<windows.h>
#include<mmsystem.h>
#pragma comment(lib,“winmm.lib”)
步骤
1.准备一个wav文件 放在一个比较方便找的位置 等下要导入
2.导入资源文件
到解决方案资源管理器中右键资源文件 添加一个资源
文件类型选择Accelerator 点导入
文件类型选择所有文件 然后点打开即可导入
如果导入的文件没有显示 就打开这个新的rc文件的代码 找到如下一行
IDR_WAVE1 是导入的文件ID WAVE是文件格式 后面的是文件名
3.导入成功之后可以直接写代码播放
播放音乐的全部代码如下
#include"resource.h"//导入资源之后有一个resource.h头文件 记得加上
#include<Windows.h>
#include<mmsystem.h>
#pragma comment(lib,“winmm.lib”)
int main()
{
PlaySound(LPWSTR(IDR_WAVE1), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC | SND_LOOP);
//PlaySound(MAKEINTRESOURCE(IDR_WAVE1), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC | SND_LOOP);
//上面两种方式都可以 IDR_WAVE1 是导入资源的ID
//下面针对第三个参数做一下解释
//SND_RESOURCE 表示使用的资源文件(如果是文本文件 exe要带上一个音乐文件才能实现音乐播放)
//SND_ASYNC 异步播放
//SND_LOOP 循环播放 必须要用到SND_ASYNC
while (1);//防止直接退出程序
return 0;
}
备注 1) PlaySound不能播放mp3 可以播放导入的wav或者播放一个wav文件,如果想要播放mp3可以用mciSendString,但是mciSendString不能播放资源文件
2) 导入资源之后exe会变得更大,上面示例中的exe将近有43M,播放的wav有36M,而同样的Mp3文件将近10M
2018/12/30补充
如果遇到有未定义标识符的问题,如果是某个函数未定义,那么加上头文件
如果是里面的资源ID有问题,打开项目中的rc文件找到正确的资源ID,同时记得加上resource.h这个头文件(导入资源之后自动创建)
如果还有其他问题,意见或者建议,欢迎私信或者留言 谢谢
作者:Sum7mer
来源:CSDN
原文:https://blog.csdn.net/Sum7mer/article/details/79003631
版权声明:本文为博主原创文章,转载请附上博文链接!