我正在开发Java MIDI应用程序。
我一直坚持调试异常,它在歌曲结束时进行调度。正如我所期望的:应用程序正在播放,每次我检查序列标记的位置,以在应用程序回放行中表示它,就像播放器一样。
所以我想知道我怎样才能得到这个线程开始运行的源代码或点?
下面是一个异常输出:
Exception in thread "Thread-23" java.lang.IllegalStateException: Sequencer is not open
at org.tritonus.share.midi.TSequencer.checkOpen(TSequencer.java:29
我正在尝试制作一种自定义midi播放器,为此我使用了一个已经正确记忆了midi消息数据的数组,如下所示:
int array[3000][4]={{time,status,data1,data2},{...},...}
当我希望我的程序发送midi消息时(这样就可以播放),我调用这个数组,并对noteon/off、音调弯曲等做必要的区分。音高弯曲值(范围从0到16383,但通常在8192左右,这意味着没有音高移动)全部记忆在data1 (阿拉伊)。对于从int到传递给midiOutShortMsg()的两个7位值的转换,我使用了一些找到的代码。下面是我实际使用的代码:
union { unsi