VS播放音乐

用到的函数 PlaySound

所需头文件

#include

#include

#pragma comment(lib,"winmm.lib")

步骤

1.准备一个wav文件 放在一个比较方便找的位置 等下要导入

2.导入资源文件

VS播放音乐_第1张图片
导入

到解决方案资源管理器中右键资源文件 添加一个资源

VS播放音乐_第2张图片
添加资源

文件类型选择Accelerator 点导入

VS播放音乐_第3张图片
导入

文件类型选择所有文件 然后点打开即可导入

VS播放音乐_第4张图片
导入

如果导入的文件没有显示 就打开这个新的rc文件的代码 找到如下一行

VS播放音乐_第5张图片
rc文件

IDR_WAVE1 是导入的文件ID WAVE是文件格式 后面的是文件名

3.导入成功之后可以直接写代码播放

播放音乐的全部代码如下

#include"resource.h"//导入资源之后有一个resource.h头文件 记得加上
#include
#include
#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不能播放资源文件

  1. 导入资源之后exe会变得更大,上面示例中的exe将近有43M,播放的wav有36M,而同样的Mp3文件将近10M

2018/12/30补充

如果遇到有未定义标识符的问题,如果是某个函数未定义,那么加上头文件

如果是里面的资源ID有问题,打开项目中的rc文件找到正确的资源ID,同时记得加上resource.h这个头文件(导入资源之后自动创建)

2019/2/15补充

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

#include
#include
#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;
}

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

VS播放音乐_第6张图片
(* ̄3 ̄)╭

有兴趣一起学习C/C++的小伙伴们记得加群: 871318929,会有许多的资源可以供大家学习分享,欢迎大家前来一起学习进步!

你可能感兴趣的:(VS播放音乐)