VC 用发音函数Beep()播放简谱音乐
来源:互联网 发布:阿里云帮助文档 编辑:程序博客网 时间:2024/04/27 13:30
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;}
http://www.cnblogs.com/morewindows/archive/2011/08/15/2139544.html
0 0
- VC 用发音函数Beep()播放简谱音乐
- VC 用发音函数Beep()播放简谱音乐
- VC 用发音函数Beep()播放简谱音乐
- VC 用发音函数Beep()播放简谱音乐
- VC 用发音函数Beep()播放简谱音乐
- VC 用发音函数Beep()播放简谱音乐
- VC 用发音函数Beep()播放简谱音乐
- VC 用发音函数Beep()播放简谱音乐
- VC 用发音函数Beep()播放简谱音乐
- VC 用发音函数Beep()播放简谱音乐
- VC 发音函数Beep()的简单示例
- 控制台 发音beep函数的使用
- 使用windows的beep函数演奏音乐
- vc 简单播放音乐
- 音乐简谱知识
- VC简单实现播放音乐
- VC++ 繁星音乐播放器
- 怎样用word写音乐简谱
- 黑马程序员——java基础知识篇——>String类
- 卷积神经网络的一些细节
- 数理统计与IT笔试中的等待问题(一)
- 启用Windows中的Telnet功能一起看DOS版星球大战
- 笔试题:再hash法
- VC 用发音函数Beep()播放简谱音乐
- FreeBSD常用命令110条
- IOS开发指南学习——Json解析
- Codeforces 548E Mike and Foam(容斥)
- Strategy策略模式和State/Bridge模式的区别
- 使用单例模式需要注意的几个问题
- c语言中的指针(包括数组与指针相关)
- HTML5,Javascript,and jQuery 24-Hour Trainer(1)——简单的模板
- 利用Java的反射机制,写了一个简单的仿Gson的解析器