【发布时间】:2013-03-12 09:40:59
【问题描述】:
我正在创建一个 MIDI 钢琴,在其中我使用 transmitter 接收 MIDI 键盘按键,并使用 receivers 在一些字节操作后将这些消息发送到扬声器。
我的问题是我想检测用户是否按住某个键。如果用户按住一个键,则该音符应保持不变。如果不是,则该音符应逐渐消失到静音。
Java MIDI 没有我可以调用的发送器方法,例如 isRunning() 或 isActive() 来判断是发送器,即用户正在按住一个键。有什么办法可以检测到吗?
在我的代码中,我有一个无限的while 循环,它不断检查transmitter 是否向receiver 发送了任何数据,如果它已经处理了该数据,否则什么都不做。但是,当按下并按住 MIDI 键盘上的某个键时,MIDI 数据会在按下该键时发送到接收器,但是当 while 循环再次启动时,由于键被保持在原位,因此不会接收到 MIDI 数据。
【问题讨论】: