利用mciSendString函数实现音乐播放

要引用的头文件

(注意使用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);
}

希望对你有所帮助。

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值