代码很漂亮,应该是从html里复制过来的。
论坛准备改版,届时会加入markdown,以及highlight.js之类的功能。
主板上那个是蜂鸣器。
当然,我更好奇的是这个api内部windows是怎么实现的,产生一个波形,然后调用媒体播放?
论坛准备改版,届时会加入markdown,以及highlight.js之类的功能。
主板上那个是蜂鸣器。
当然,我更好奇的是这个api内部windows是怎么实现的,产生一个波形,然后调用媒体播放?
<code class="lang-cpp">#include <stdio.h> #include <conio.h> #include <windows.h> // 音符频率 int tone_map[36][2] = { // 按住shift 'O', 131, ')', 139, 'P', 147, '_', 156, '{', 165, '}', 175, // 常规音符 '`', 185, '\t', 196, '1', 208, 'q', 220, '2', 233, 'w', 247, 'e', 262, '4', 278, 'r', 295, '5', 313, 't', 332, 'y', 352, '7', 373, 'u', 395, '8', 418, 'i', 443, '9', 469, 'o', 497, 'p', 524, '-', 555, '[', 588, '=', 623, ']', 660, '\\', 699, // 按住shift '!', 741, 'Q', 785, '@', 832, 'W', 881, '#', 993, 'E', 988, }; // 相对时值 int time_map[16][2] = { // 支持 1/16 1/8 1/4 1/2 1 'z', 1, 'x', 2, 'a', 3, 'c', 4, 's', 5, 'd', 6, 'f', 7, 'v', 8, 'g', 9, 'h', 10, 'j', 11, 'k', 12, 'l', 13, ';', 14, '\'', 15, 'b', 16, }; int base_time = 90; // 基准时值 int cur_time = 720; // 当前时值 int main() { printf("base time (recommends 90): "); scanf("%d", &base_time); printf("tones: \n" " ) _ ` 1 2 |" " 4 5 7 8 9 |" " - = ! @ # \n" " O P { } tab q w |" " e r t y u i o |" " p [ ] \\ Q W E \n" ); printf("durations: \n" " a s d f g h j k l ; '\n" " z x c v b\n" ); printf("press shift-? to quit.\n"); cur_time = base_time * 8; printf("\rduration = %d ", cur_time); // 按键循环 while (int ch = getch()) { if (ch == '?') return 0; // 退出 // 查表改变时值 for (int j = 0; j < 16; j++) if (time_map[j][0] == ch) { cur_time = time_map[j][1] * base_time; printf("\rduration = %d ", cur_time); goto cont; } // 查表发声 for (int j = 0; j < 36; j++) if (tone_map[j][0] == ch) Beep(tone_map[j][1], cur_time); cont: } return 0; }</windows.h></conio.h></stdio.h></code>
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。