看过我的博客的人都知道,在C语言中调用几个API函数就可以播放音乐了,而我在博客中也写过Windows图形界面编程中做过一些与音乐有关的程序,如 音乐播放器 音乐贺卡 等 ,可是如果要你在控制台中自己制造音乐,怎么做呢(不是播放音乐文件),
建立Win32控制台程序,在程序中添加下面的代码
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
/*定义1/8时间长度为225ms,中速*/
const unsigned PER = 225;
/*定义音阶:低音*/
enum {Do = 262,Re = 294,Mi = 330,Fa = 349,So = 392,La = 440,Xi = 494};
/*定义播放一节音符的函数
f--表示音符,其值为上述定义的枚举型
a-- 表示音高,其值为1(低音)、2(中音)、3(高音)
*/
void Play(int f,int a,int t)
{
int i = 0;
Beep((unsigned )(f*a),t*PER);
}
/*定义休止函数*/
void Stop(int t)
{
Sleep(t*PER);
}
int main()
{
while(1)
{
/*欢乐颂,第一段*/
/*第一节:3 3 4 5*/
Play(Mi,2,2); Play(Mi,2,2); Play(Fa,2,2); Play(So,2,2);
/*第二节:5 4 3 2*/
Play(So,2,2); Play(Fa,2,2); Play(Mi,2,2); Play(Re,2,2);
/*第三节:1 1 2 3*/
Play(Do,2,2); Play(Do,2,2); Play(Re,2,2); Play(Mi,2,2);
/*第四节:3 2 2 -*/
Play(Mi,2,2); Play(Re,2,2); Play(Re,2,4);
/*欢乐颂第二段*/
/*第一节:3 3 4 5*/
Play(Mi,2,2); Play(Mi,2,2); Play(Fa,2,2); Play(So,2,2);
/*第二节:5 4 3 2*/
Play(So,2,2); Play(Fa,2,2); Play(Mi,2,2); Play(Re,2,2);
/*第三节:1 1 2 3*/
Play(Do,2,2); Play(Do,2,2); Play(Re,2,2); Play(Mi,2,2);
/*第四节:2 1 1 -*/
Play(Re,2,2); Play(Do,2,2); Play(Do,2,2);
}
Stop(0);
return 0;
}
从上面的代码和解释中我们可以看出这是播放贝多芬的名曲《欢乐颂》
执行结果:循环播放贝多芬的名曲《欢乐颂》并且会出现一个DOS窗口(控制台程序的特点)