在c语言程序中怎样载入背景音乐啊,是背景音乐哦,求函数具体用法和实例。谢谢
代码如下:
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib, "WINMM.LIB")
/*播放音乐*/
void playMusic()
{
//aiyo.wav是放在代码文件中
PlaySound(TEXT("aiyo.wav"),0,SND_FILENAME | SND_ASYNC);
}
/**
* 主 函 数(音乐放第一排)
*/
void main()
{
playMusic();
title(); //欢迎界面上的标题
flower(); //打印字符画
welcome(); //欢迎界面上的选项菜单
}
扩展资料
C语言解析WAV音频文件:
C语言基本的二进制文件操作函数有fopen,fread等等。(注意是二进制文件操作函数,所以我们不讨论fgets,这是普通的文本文件操作函数)
fread是一个函数。从一个文件流中读数据,最多读取count个项,每个项size个字节,如果调用成功返回实际读取到的项个数(小于或等于count),如果不成功或读到文件末尾返回 0。
它的函数原型为
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
而且C语言还有一种类型叫做结构体,它在内存中是顺序存储的。刚好我们也已经得知了WAV文件在文件中的顺序以及该顺序中每个部分对应的含义。
那么我们可以事先根据前面所说的WAV文件结构来定义好一个struct,然后在main主函数中初始化这个struct,并且通过fread的第一个参数带入初始化好的这个struct,那么执行之后就会自动读取该文件,并且按照顺序自动把这些元数据填充进了我们初始化好的struct中。
2012-06-04
播放音乐嘛,就是用sound() 函数发声,delay()函数指定时间长度,nosound()取消发声
可以把乐谱放入数组
基本就是这样
#include <windows.h>
#include <stdlib.h>
#pragma comment(lib,"winmm.lib")
int main()
{
puts("播放声音...");
PlaySound ("1.wav",NULL,SND_FILENAME | SND_ASYNC);
puts("按任意键退出!");
system("pause>nul") ;
}
注意。。。音乐文件格式必须是.wav的,播放声音不会停止代码的执行
如果你要在声音播放完之后在继续执行代码,而不是一边播放一边执行的话,请把SND_ASYNC改成SND_SYNC
如果要循环播放这首歌,要怎么设置啊
那就把 SND_FILENAME | SND_ASYNC 改为 SND_FILENAME | SND_ASYNC | SND_LOOP 就可以了
你自己看标志的说明:组合方式就像上面的一样,用 | 组合
● SND_APPLICATION
用应用程序指定的关联来播放声音。
● SND_ALIAS
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。
● SND_ALIAS_ID
pszSound参数指定了预定义的声音标识符。
● SND_ASYNC
用异步方式播放声音,PlaySound函数在开始播放后立即返回。
● SND_FILENAME
pszSound参数指定了WAVE文件名。
● SND_LOOP
重复播放声音,必须与SND_ASYNC标志一块使用。
● SND_MEMORY
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。
● SND_NODEFAULT
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。
● SND_NOSTOP
PlaySound不打断原来的声音播出并立即返回FALSE。
● SND_NOWAIT
如果驱动程序正忙则函数就不播放声音并立即返回。
● SND_PURGE
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。
● SND_RESOURCE
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。
● SND_SYNC
同步播放声音,在播放完后PlaySound函数才返回。