前言
前段时间为了写 贪吃蛇2.0版 程序需要用到背景音乐以及主音乐摸索了半天,在博客以及百度找了好几天,发现很少有人回答了这个答案,有的也只是用多管道多线程控制音乐,本人又不会使用多线程,使用多线程也不方便,所以反复在各大网站摸索之后终于找到了解决办法,该方法不需要建立多管道多进程,不需要C++,C语言就能搞定,并且自定义函数后多出可以随时调用,方便快捷,今天分享出来给大家。
查找这些资料以及写这篇文章都花费了我不少相思,希望您能留下您的点赞,你的点赞是我继续创作的最大动力!!
正言
PlaySound函数在播放音乐时,遇到下一个PlaySound函数时会被打断是不可避免的,所以我们可以同时引用另外一个函数:
BOOL mciSendString(“Command1 FILE Command2”,NULL,0,NULL);
先介绍:
PlaySound函数
PlaySound函数只能播放WAV格式的音频文件,无法播放MP3格式或者其它格式的音频文件,所以在使用的时候记得先行转码在使用
使用PlaySound函数时要包含以下头文件:
#include<windows.h>
#pragma comment(lib,"winmm.lib")
函数原型:
BOOL PlaySound( TEXT(“FILE”) , NULL , DWORD fdwSound );
FILE:
[路径+] 媒体文件名
如:
123.wav
D:\\Download\\123.wav
fdwSound:
用来指定播放模式,常用参数如下:
*SND_ASYNC
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
SND_FILENAME
pszSound参数指定了WAVE文件名。
SND_LOOP
重复播放声音,必须与SND_ASYNC标志一块使用。
代码实例:
//循环播放同目录下的123.wav音频文件
PlaySound(TEXT("123.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
//播放一次绝对目录D:\Download\下的123.wav音频文件
PlaySound(TEXT(D:\\Download\\123.wav),NULL,SND_FILENAME | SND_ASYNC);
//结束播放音频
PlaySound(NULL,NULL,SND_FILENAME);
我们可以写一个控制播放音乐的自定义函数:
void Music(char c[],int n)
{
switch(n)
{
case 2:
//循环播放音乐,在遇到下一次播放音