Java停止MIDI播放

Java停止MIDI播放,java,audio,midi,Java,Audio,Midi,嗨,我有一个java应用程序,它可以播放序列中的midi消息。我用jfugue图书馆来做这件事 问题是当我试图用stop按钮停止播放时,该按钮调用sequencer.stop和sequencer.close最后播放的音符在所有休息时间都是声音,我无法停止 所以我在问关于停止所有音频和MIDI的解决方案!从java应用程序播放声音 注意: 如果你想建议只静音音量,你需要知道,我希望最终使用将能够再次按下播放按钮,并再次听到声音,所以静音音量将不是一个解决方案,或请解释 谢谢大家! 我猜您需要在调用

嗨,我有一个java应用程序,它可以播放序列中的midi消息。我用jfugue图书馆来做这件事

问题是当我试图用stop按钮停止播放时,该按钮调用sequencer.stop和sequencer.close最后播放的音符在所有休息时间都是声音,我无法停止

所以我在问关于停止所有音频和MIDI的解决方案!从java应用程序播放声音

注意: 如果你想建议只静音音量,你需要知道,我希望最终使用将能够再次按下播放按钮,并再次听到声音,所以静音音量将不是一个解决方案,或请解释


谢谢大家!

我猜您需要在调用sequencer.stop之前先调用。未经测试,因此如果它不起作用,请告诉我。

我猜您需要在调用sequencer.stop之前先调用。未经测试,因此如果它不起作用,请告诉我。

当MIDI播放音乐时,它使用打开和关闭音符事件的组合。听起来,当您按下停止按钮时,序列在发送NOTE_ON事件之后停止,但在发送NOTE_OFF事件之前停止。这意味着声音将无限期地继续播放


JFugue中的Player.allNotesOff在Channel类中调用JavaSound的allNotesOff方法;此调用针对每个MIDI通道进行,共有16个通道。不幸的是,这个解决方案不起作用。尝试在sequencer.stop之后调用Player.allnotesof,看看这是否有帮助。

当MIDI播放音乐时,它使用音符打开和音符关闭事件的组合。听起来,当您按下停止按钮时,序列在发送NOTE_ON事件之后停止,但在发送NOTE_OFF事件之前停止。这意味着声音将无限期地继续播放


JFugue中的Player.allNotesOff在Channel类中调用JavaSound的allNotesOff方法;此调用针对每个MIDI通道进行,共有16个通道。不幸的是,这个解决方案不起作用。尝试在sequencer.stop之后调用Player.allnotesof,看看是否有帮助。

没有。当前播放的音符仍然是声音。很奇怪。没有。当前播放的音符仍然是声音。很奇怪。