VS中如何导入wav并且播放音乐

用到的函数 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这个头文件(导入资源之后自动创建)

2019/2/15补充

//如果只是播放外部音乐  可以参考如下代码  想要了解更多内容可以查一下mciSendString这个函数的用法

#include<Windows.h>
#include<mmsystem.h>
#pragma comment(lib,"winmm.lib")

int main()
{
    mciSendString(L"open ./bgm.mp3 alias bgm",0,0,0);//打开音乐
    mciSendString(L"open bgm repeat",0,0,0);//播放音乐
    
    /*
        1. 打开音乐 open后面的./bgm.mp3 是音乐文件的相对路径,使用绝对路径也可以
        2. 打开音乐中 alias bgm 是给音乐取个别名  下面就可以直接open bgm了,别名可以自取
        3. 播放音乐中 repeat表示重复播放,如果只想播放一次,可以去掉repeat
        4. mciSendString这个函数可以播放mp3 wav格式的音乐,如果代码无误但是没法播放音乐,尝试换一首.(尽量避免用网易云下载的音乐,可能无法播放,原因不明)
    */
	while (1);//防止直接退出程序
	return 0;
}

如果还有其他问题,意见或者建议,欢迎私信或者留言  谢谢

 

  • 28
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 92
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 92
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值