您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

分享控制台中的钢琴发音小程序

2024/4/30 3:53:07发布6次查看
想一下,平时那些好听的音符在程序中怎么实现呢?这个是不是很有意思呀!如果我们自己可以做一个小程序来模拟音乐中七个音符的发音,你是否能够做的到?
接下来,我们就一起去看看这个神奇的声音的来源。。。
首先,我们建一个控制台的项目。这个程序的核心是怎样让系统发音,这就用到了console类中的beep()这个方法,它呢,有两个参数,第一个是来控制声音的频率,第二个是来控制时间的长短。
还有一个方法是readkey(),它呢,每次读一个字符,它有一个bool型参数,用来控制按下的键是否显示在控制台窗口中。
其中,比较有意思的是,我们还可以对输入的音符进行记录,用于录制我们自己刚刚弹的音乐。这里呢,我们用到了timespan 的类型  ,用来计算时间间隔,还有用到了线程的停顿(thread.sheep)。
下面呢,是整个程序的代码,以供参考。
/// <summary> /// 获取声音及改变背景颜色 /// </summary> /// <param name="i"></param> static void sound(int i) { int fre=(convert.toint32(i) + 13) * 37; switch (i) { case '1': console.beep(fre, 300);//第一个参数指定声音的频率,第二个参数指定声音的持续时间 console.backgroundcolor = consolecolor.blue; console.clear(); break; case '2': console.beep(fre, 300); console.backgroundcolor = consolecolor.cyan; console.clear(); break; case '3': console.beep(fre, 300); console.backgroundcolor = consolecolor.green; console.clear(); break; case '4': console.beep(fre, 300); console.backgroundcolor = consolecolor.red; console.clear(); break; case '5': console.beep(fre, 300); console.backgroundcolor = consolecolor.yellow; console.clear(); break; case '6': console.beep(fre, 300); console.backgroundcolor = consolecolor.white; console.clear(); break; case '7': console.beep(fre, 300); console.backgroundcolor = consolecolor.blue; console.clear(); break; default: break; } } //该类定义记录输入的字符以及时间间隔 class ll { public char c;//字符 public datetime d;//时间间隔 } static void main(string[] args) { console.setwindowsize(100,30); list<ll> record = new list<ll>(); while (true) { consolekeyinfo cki = console.readkey(true); char i = cki.keychar; if (i != 'q')//如果输入q,则开始按录制的播放 { ll l = new ll(); l.c = i; l.d = datetime.now; record.add(l); sound(i); } else { for (int k = 0; k < record.count;k++ ) { timespan tspan; if (k != 0)//如果是第一个,则计算时间间隔 { tspan=record[k].d - record[k-1].d;//计算输入的时间间隔 console.writeline(tspan); thread.sleep(tspan);//将当前线程阻塞指定的时间。 } sound(record[k].c); } record.clear();//将记录清空 } } }
以上就是分享控制台中的钢琴发音小程序的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录