博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Beep使用
阅读量:7058 次
发布时间:2019-06-28

本文共 3506 字,大约阅读时间需要 11 分钟。

Win32 API中有个非常有趣的发音函数Beep(),可以用它在扬声器上播放简单的音调,如果按简谱来设置播放的内容,就可以播放出部分简单的音乐。

 

函数原型:

BOOL WINAPI Beep(

  __in          DWORD dwFreq,

  __in          DWORD dwDuration

);

函数说明:

第一个参数表示频率,用Hz为单位,可以在0x25到0x7FFF之间。

第二个参数表示持续的时间,以毫秒为单位。

 

与这个函数类似的是:

BOOL WINAPI MessageBeep(

  __in          UINT uType

);

这个函数使用要广泛的多。相当多的程序在MessageBox()之前都会调用MessageBeep()来发出一些提示音(实际上是播放系统音乐文件)。

可供选择的参数有:

MB_ICONASTERISK

0x00000040L

SystemAsterisk

MB_ICONEXCLAMATION

0x00000030L

SystemExclamation

MB_ICONHAND

0x00000010L

SystemHand 警告音

MB_ICONQUESTION

0x00000020L

SystemQuestion

MB_OK

0x00000000L

 

SystemDefault

(这个必须转载- - 转载请注明:)

再附上本人收藏的几个用Beep()播放音乐的程序,虽然音质无法与音频文件媲美,但做个小小的娱乐还是可以的:

// 播放  生日快乐

#include <windows.h>

void main(void)  

{  

    unsigned FREQUENCY[] = {392,392,440,392,523,494,  

              392,392,440,392,587,523,  

              392,392,784,659,523,494,440,  

              689,689,523,587,523};  

 

    unsigned DELAY[] = {375,125,500,500,500,1000,  

              375,125,500,500,500,1000,  

              375,125,500,500,500,500,1000,  

              375,125,500,500,500,1000};  

    int i;  

    for (i = 0; i < 25; i++)  

    {  

              Beep(FREQUENCY[i], DELAY[i]);  

    }  

 

#include<iostream.h>

#include<windows.h>

 

enum fy{

       d1 = 262,

       d1_ = 277,

       d2 = 294,

       d2_ = 311,

       d3 = 330,

       d4 = 349,

       d5 = 392,

       d5_= 415,

       d6 = 440,

       d6_= 466,

       d7 = 494,

       z1 = 523,

       z1_ = 554,

       z2 = 578,

       z2_ = 622,

       z3 = 659,

       z4 = 698,

       z4_ = 740,

       z5 = 784,

       z5_ = 831,

       z6 = 880,

       z6_ = 932,

       z7 = 988,

       g1 = 1046,

       g1_ = 1109,

       g2 = 1175,

       g2_ = 1245,

       g3 = 1318,

       g4 = 1397,

       g4_ = 1480,

       g5 = 1568,

       g5_ = 1661,

       g6 = 1760,

       g6_ = 1865,

       g7 = 1976,

       yaya = 0

};

 

struct yf

{

       enum fy s;

       int t;

};

 

int main()

{

       int n = 0;

 

       struct yf a[1000]={

{z3,125},{z3,50},{z4,100},{z3,50},{z2,50}, //5

       {z2,125},{z2,50},{z5,100},{z2,50},{z1,50}, //10

       {z1,125},{z1,50},{z6,100},{z5,100},    //14

       {z3,125},{z4,25},{z3,25},{z2,100},{z2,100}, //19

       {z3,125},{z3,50},{z4,100},{z5,50},{z3,50}, //24

       {z5,125},{z5,50},{g2,100},{z7,50},{g1,50}, //29

       {g1,200},{g1,50},{z7,50},{z6,50},{z7,50}, //34

       {g1,125},{z7,50},{g1,200},      //37

       {g1,50},{z7,50},{g1,50},{z7,50},{g1,100},{z3,50},{z5,50}, //44

       {z5,250},{z6,50},{z7,50},      //47

       {g1,50},{z7,50},{g1,50},{z7,50},{g1,100},{g2,100},{g3,100}, //54

       {g3,300},{z6,50},{z7,50},   //57

       {g1,50},{z7,50},{g1,50},{z7,50},{g1,100},{g3,100}, //63

       {z7,50},{z6,50},{z7,50},{z6,50},{z7,50},{z5,50},{z5,50},{g1,50}, //71

       {g1,200},{g3,75},{g4,25},{g4,50},{g3,50}, //76

       {g2,200},{yaya,50},{z5,50},{g1,50},{g2,50}, //81

       {g3,50},{g1,50},{g1,50},{z5,50},{z5,100},{z5,50},{g3,50}, //88

       {g2,50},{g3,50},{g2,50},{g1,50},{z5,50},{z5,50},{z6,50},{z7,50}, //96

       {g1,50},{z6,50},{z6,50},{z3,50},{z3,100},{yaya,50},{z7,50}, //103

       {g1,50},{z7,50},{g1,50},{g2,50},{z6,50},{z5,50},{z5,100}, //110

       {z6,100},{z5,50},{z6,50},{z7,100},{g3,50},{g4,50}, //116

       {g3,50},{g4,50},{g3,50},{g2,50},{g2,50},{g1,100},{z5,50}, //123

       {z5,50},{z4,50},{z4,50},{g1,50},{g1,50},{g3,50},{g3,50},{g1,50}, //131

       {g2,200},{yaya,50},{z5,50},{g1,50},{g2,50}, //136

       {g3,50},{g1,50},{g1,50},{z5,50},{z5,100},{z5,50},{g3,50}, //143

       {g2,50},{g3,50},{g2,50},{g1,50},{z5,50},{z5,50},{z6,50},{z7,50}, //151

       {g1,50},{z6,50},{z6,50},{z3,50},{z3,100},{z3,50},{z7,50}, //158

       {g1,50},{z7,50},{g1,50},{g2,50},{z6,50},{z5,50},{z5,100}, //165

       {z6,50},{z7,50},{g1,50},{g2,100},{g3,50},{g4,50}, //171

       {g3,50},{g4,50},{g2,50},{g1,50},{g2,50},{g1,50},{g1,100}, //178

       {g2,50},{g1,50},{g2,50},{z6,50},{g1,100},{g2,50},{g1,50}, //185

       {g1,400},   //186

       {g2,50},{g1,50},{g2,50},{z6,50},{z7,100},{z7,50},{g1,50}, //193

       {g1,400},   //194

       };

 

       struct yf *atop;

       atop = a;

       n = 194;

 

       while(n--)

       {

              Beep(atop->s,atop->t*5);

              atop++;

       }

       return 0;

}

转载于:https://www.cnblogs.com/zhiweiyouzhishenghuo/archive/2012/07/12/5005515.html

你可能感兴趣的文章
wxWidgets谁刚开始学习指南(5)——使用wxSmith可视化设计
查看>>
OAuth的机制原理讲解及开发流程(转)
查看>>
jquery插件-表单验证插件-rules
查看>>
window.parent ,window.top,window.self 详解
查看>>
web安全测试---AppScan扫描工具
查看>>
源码解析之–网络层YTKNetwork
查看>>
Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论
查看>>
参数判断
查看>>
md5sum校验文件完整性
查看>>
Excel中公式的绝对引用和相对引用单元格
查看>>
[uboot]E9-i.MX6Q-uboot移植
查看>>
Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
查看>>
insert,update和delete下的注入
查看>>
Docker之宿主机ssh至docker容器
查看>>
mac 安装mysql
查看>>
8 -- 深入使用Spring -- 4... Spring的AOP
查看>>
grid control 11.1.0.1 安装指南
查看>>
[转]:Delphi XE中泛型数组的使用范例
查看>>
KMP hihoCoder1015 KMP算法
查看>>
Kafka的安装和设置
查看>>