【发布时间】:2014-02-13 06:39:12
【问题描述】:
为了好玩,我编写了一个音乐程序(用 C# 编写),它通过在用户按键时以适当的频率 P/Invoking Beep 函数来工作。
这种方法的一个问题是Beep 需要预先指定持续时间,因此所有音符都具有相同的长度。这对乐器来说是一个相当严重的限制。
我想做的是在 KeyDown 事件上开始播放音符,并在 KeyUp 事件上停止播放。优选地,以一种可以同时演奏多个音符的方式。有没有一种简单的方法可以在 .NET 或 Win32 中完成此任务?
【问题讨论】:
-
我能想到
Beep的一个选项是在keydown 上设置一个标志,开始循环播放检查keydown 标志,在keyup 中重置标志。您不会实时停止,但可以根据音乐目的进行调整。注意:这个我没试过,你可以试试看。