要引用的头文件
(注意使用C++,使用.cpp文件)
#include<stdio.h>
#include <Windows.h>
#include <mmsystem.h>
#pragma comment (lib,"winmm.lib")
main函数主题
int main()
{
mciSendString("open assets/Love_Story.mp3 alias bgm", NULL,0, NULL);
mciSendString("play bgm", NULL,0, NULL);
}
音频文件路径的配置
成功的路径配置是实现音乐播放的关键
步骤一:在所创建的.cpp文件目录下,创建文件夹assets,放置音频文件(要为MP3格式,否则需要格式转换)
在文件夹assets中放入MP3格式的音频文件(为音频文件命名,注意:文件命名不要出现空格,空格可用下划线代替,否则会导致识别失败)
文件路径书写
分为绝对路径与相对路径
示例:
绝对路径:D:\\code\\practise\\music_play\\music_play\\assets\\Love_Story.mp3
绝对路径为上图画图框的地址(地址前要在\前再加一个\,如:D:\\code\\practise\\music_play\\music_play\\assets\\Love_Story.mp3)
代码如:
int main()
{
mciSendString("open D:\\code\\practise\\music_play\\music_play\\assets\\Love_Story.mp3 alias bgm", NULL,0, NULL);
mciSendString("play bgm", NULL,0, NULL);
}
相对路径为:
int main()
{
MCIERROR ret = mciSendString("open assets/Love_Story.mp3 alias bgm", NULL,0, NULL);
mciSendString("play bgm", NULL,0, NULL);
}
alias为另命名,为文件名取另一个名字,下一行代码中就可以用这个名字
编译器无法识别地址
出现下面情况:
在调试中,选择调试属性
将Unicode字符集改为使用多字节字符集
如下图:
之后编译器便可以识别
无法播放音乐
当运行代码后出现下图,但仍然无法播放音乐
原因:代码运行成功,但已经运行结束。因此无音乐播放。
我们可以再加一行代码,让运行无法立即结束,如下:
加入一个死循环,便可以让音乐播放出来。
int main()
{
mciSendString("open assets/Love_Story.mp3 alias bgm", NULL,0, NULL);
mciSendString("play bgm", NULL,0, NULL);
while (1);
}
最后的全部代码:
#include<stdio.h>
#include <Windows.h>
#include <mmsystem.h>
#pragma comment (lib,"winmm.lib")
int main()
{
mciSendString("open assets/Love_Story.mp3 alias bgm", NULL,0, NULL);
mciSendString("play bgm", NULL,0, NULL);
while (1);
}
希望对你有所帮助。